Spring6源码中新建模块遇依赖问题:无法引入spring-context
解决Spring源码项目自定义模块依赖问题
1. 将你的模块加入根项目配置
Spring Framework根目录的settings.gradle(若为Kotlin版本则是settings.gradle.kts)必须声明spring-z-simple模块,否则Gradle不会将其纳入项目结构:
- 打开根目录的
settings.gradle,找到include模块列表,添加:include ':spring-z-simple' - 保存后点击IDEA右上角的Gradle同步按钮,让项目结构生效。
2. 调整自定义模块的Gradle插件配置
Spring自身有一套Gradle构建约定,仅使用java插件适配性不足,修改spring-z-simple/build.gradle如下:
plugins { id 'java' // 可选:添加该插件,保持与Spring源码一致的代码格式 id 'io.spring.javaformat' } group = 'org.springframework' version = '6.2.0-SNAPSHOT' repositories { mavenCentral() } dependencies { // 调试学习场景用implementation足够,api用于模块对外暴露依赖 implementation(project(":spring-context")) testImplementation platform('org.junit:junit-bom:5.10.0') testImplementation 'org.junit.jupiter:junit-jupiter' } test { useJUnitPlatform() }
3. 重新构建并同步IDEA
- 在IDEA的Gradle面板中,找到
spring-z-simple模块,先执行clean任务再执行build任务。 - 再次点击Gradle同步按钮,让IDE更新最新的依赖配置。
4. 排查剩余问题
- 同步完成后,查看Gradle面板的
spring-z-simple -> Dependencies,确认spring-context已在依赖列表中。 - 若仍无法找到
ApplicationContext,执行File -> Invalidate Caches...,选择"Invalidate and Restart"清除IDE缓存,通常可解决该问题。
调试Spring源码的额外准备
若需要调试Spring源码本身:
- 先在根项目执行
compileJava任务,确保Spring源码已编译完成。 - 若打开
ApplicationContext类提示找不到源码,进入File -> Project Structure -> Modules,找到spring-context模块,检查其Sources目录是否被正确标记为源码根目录。
内容的提问来源于stack exchange,提问作者Kuromi
相关产品推荐
相关产品推荐

