我使用Gradle 复合构建构建我的项目(将此项目称为 B )及其一些上游依赖项目。其中一个上游项目(称为此项目 A )具有备用源集,其配置为避免对生成的代码产生警告。
配置如下:
sourceSets {
generated {
java {
srcDir "$buildDir/generated-sources/generated/main/java"
}
}
}
dependencies {
compile sourceSets.generated.compileClasspath
compile sourceSets.generated.output
}
compileGeneratedJava.options.warnings = false
jar { from sourceSets.generated.output }
这可以从命令行使用gradle进行精细构建。但是,在IntelliJ Idea中,它将两个源集导入为单独的模块: A_main 和 A_generated 。它会在 A_main 上创建 B_main 的依赖关系,但不会在 A_generated 上创建依赖关系。
从IntelliJ IDEA运行时会导致运行时错误。 (B不直接使用A中生成的任何类。)
如何解决这个问题?
我使用的版本是:
IntelliJ IDEA: 2017.2.5
Gradle: 4.2.1