IntelliJ中两个Gradle项目依赖本地模块,其一无法调用依赖内模型
问题解决思路
1. 检查依赖缓存与jar包完整性
- 先确认clevergift-core构建出的jar包是否包含
com.clevercards.businesscardmodels类:- 在clevergift-core项目执行
./gradlew build,找到build/libs/clevergift-core-3.20.853-SNAPSHOT.jar,解压后查看是否存在对应包的class文件。
- 在clevergift-core项目执行
- 如果jar包不包含目标类,修正clevergift-core的构建配置:
- 确保
jar任务包含所有sourceSets输出:jar { from sourceSets.main.output } - 执行
./gradlew clean jar重新构建jar包,验证generateSwaggerCode任务是否在jar构建前执行(当前compileJava.dependsOn配置已保证此逻辑)。
- 确保
- 在clevercards-business-api项目中强制刷新依赖:
- 执行命令:
./gradlew clean build --refresh-dependencies - 检查本地Maven仓库(
~/.m2/repository/com/cb/clevergift-core/3.20.853-SNAPSHOT/)中的jar包是否为最新构建版本。
- 执行命令:
2. 修复IntelliJ同步问题
- 刷新Gradle项目:点击IntelliJ右侧Gradle面板的「Refresh all Gradle projects」图标。
- 清除IDE缓存:执行
File -> Invalidate Caches... -> Invalidate and Restart,重启后重新同步项目。 - 检查项目库配置:打开
File -> Project Structure -> Libraries,找到clevergift-core的依赖库,确认其包含com.clevercards.businesscardmodels的类,若缺失则移除该库后重新同步Gradle。
3. 验证sourceSets配置正确性
- 调整clevergift-core的sourceSets写法,避免路径解析问题:
sourceSets.main.java.srcDirs = [ sourceSets.main.java.srcDirs, swaggerSources.clevergift.code.outputDir.resolve('src/main/java'), swaggerSources.businesscard.code.outputDir.resolve('src/main/java') ] - 执行
./gradlew sourceSets查看main源码目录是否包含两个生成目录,确认配置生效。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

