Gradle构建Java 9项目遇模块找不到错误求助
解决Gradle Java 9模块找不到的问题
看起来你遇到的是Java模块系统和Gradle集成时的典型路径/配置问题,我来帮你一步步排查修复:
1. 先修正最容易踩坑的模块描述文件
首先,你提到的module-java.info文件名是错误的!Java 9模块的描述文件必须严格命名为module-info.java,而且它的位置必须在crawler/src/main/java的根目录下(不能放在任何子包里面)。
正确的文件结构应该是这样:
crawler/ ├── build.gradle └── src/ └── main/ └── java/ ├── module-info.java └── de/ └── project/ └── crawler/ └── 你的业务类.java
2. 确认module-info.java的模块声明正确
你的模块声明必须和报错里的de.project.crawler完全一致,示例如下:
module de.project.crawler { // 根据你的需求添加exports/requires语句,比如对外暴露包: // exports de.project.crawler; }
3. 配置Gradle正确识别Java 9模块
根目录build.gradle配置
确保根项目启用Java插件,并指定正确的Java版本:
plugins { id 'java' apply false } allprojects { apply plugin: 'java' java { toolchain { languageVersion = JavaLanguageVersion.of(9) } } }
子模块crawler/build.gradle配置
如果你的子模块是可运行的应用,需要添加application插件,并明确指定主模块和主类(注意格式是模块名+全类名):
plugins { id 'application' } application { mainModule = 'de.project.crawler' // 必须和module-info里的模块名完全匹配 mainClass = 'de.project.crawler.Main' // 替换成你的主类全限定名 }
4. 验证并运行
先执行./gradlew clean build确保编译无问题,然后用./gradlew crawler:run来启动你的模块应用。
如果还是报错,可以额外检查这几点:
- 确认所有业务类都在模块声明对应的包路径下
- 执行
./gradlew crawler:properties查看modulepath相关属性,确认模块被正确加入路径 - 检查是否存在重复的模块声明或依赖冲突
内容的提问来源于stack exchange,提问作者BeJay
相关产品推荐
相关产品推荐

