使用Gradle Composite Builds和Intellij IDEA对生成的源集的依赖性

时间:2017-10-22 23:47:49

标签: java intellij-idea gradle

我使用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

0 个答案:

没有答案