build.gradle-将项目依赖性与配置一起使用



我正在使用Gradle 5.0和Kotlin DSL。如何将来自另一个gradle子标点的配置作为对subproject的依赖关系?我有以下设置:

root
  |--A
  |--B

现在,在我的B项目中,我想包括具有一定配置的项目A:

dependencies {
    testImplementation(project(":A", "testUtilsCompile"))
}

所有子标记的来源都这样定义:

project.the<SourceSetContainer>().register("testUtils", {
    java.srcDir("src/test-utils/java")
    resources.srcDir("src/test-utils/resources")
    compileClasspath += project.the<SourceSetContainer>().named("main").get().output
    runtimeClasspath += project.the<SourceSetContainer>().named("main").get().output
})
project.the<SourceSetContainer>().named("test").configure({
    compileClasspath += project.the<SourceSetContainer>().named("testUtils").get().output
    runtimeClasspath += project.the<SourceSetContainer>().named("testUtils").get().output
})

project.configurations.named("testUtilsCompile").get().extendsFrom(project.configurations.named("testCompile").get())
project.configurations.named("testUtilsRuntime").get().extendsFrom(project.configurations.named("testRuntime").get())

只要它在一个子标题内,一切似乎都可以正常工作,但是当我尝试使用位于testutils源中的类时,从另一个子标记中使用的类,它将无法正常工作。有人知道为什么吗?

如果有人偶然发现了这一点。我错过了从我的项目中发表工件:

        project.tasks.register("jarTestUtils", Jar::class) {
            classifier = "testUtils"
            from(project.the<SourceSetContainer>().named("testUtils").get().output)
        }
        project.artifacts {
            add("testUtilsCompile", project.tasks.named("jarTestUtils").get())
        }

之后,我在B项目中更改此内容:

dependencies {
    testImplementation(project(":A", "testUtilsCompile"))
}

然后它起作用..

相关内容

  • 没有找到相关文章

最新更新