【问题标题】:Gradle dependencies on source set of different projectsGradle 依赖于不同项目的源集
【发布时间】:2015-11-24 01:10:38
【问题描述】:

我在一个多项目系统中工作(有 40 多个子项目)。每个子项目都有自己的布局(大多数遵循通用布局,但有些不同)。 在子项目中我有这两个:

- testjunit
    - sourceSets
        - lptfExperimental
        - other source sets

- basicservices
    - sourceSets
        - testacceptance
        - other source sets

我需要使源集basicservices-testacceptance依赖于源集testjunit-lptfExperimental的输出。

我尝试过:

dependencies{
    testacceptanceCompile project(':testjunit').sourceSets.lptfExperimental.output
}

dependencies{
    project.parent.subprojects.each{prj ->
    if(prj.name == "testjunit")
        testacceptanceCompile prj.sourceSets.findByName('lptfExperimental').output
}

但在这两种情况下,我都会收到以下错误:

FAILURE:构建失败并出现异常。

在哪里: 脚本 'C:\Development\defaults.gradle' 行:144

出了什么问题: 评估脚本时出现问题。 在 SourceSet 容器上找不到属性“lptfExperimental”。

只是一个额外的信息:此依赖项在名为 defaults.gradle 的文件中声明,该文件应用于项目 basicservicesbuild.gradle

/defaults.gradle:

apply plugin: 'java'
apply plugin: 'eclipse'
...
sourceSets {
    ...
    // test acceptance
    testacceptance{

        java{
            srcDir 'test/acceptance/src/java'
        }

        resources {
            srcDir 'test/acceptance/src/java'
        }
    }
    ...
}

// default dependencies
dependencies{
    testacceptanceCompile project(':testjunit')
    testacceptanceCompile project(':testjunit').sourceSets.lptfExperimental.output
}
...

/testjunit/build.gradle:

...
sourceSets{
    ...
    lptfExperimental{

    java {
        srcDir 'lptf-experimental/src/java'
    }

    resources {
        srcDir 'lptf-experimental/src/java'
    }
}
...

/basicservices/build.gradle:

apply plugin: 'java'
apply plugin: 'eclipse'
apply from: '../defaults.gradle'

dependencies{
    ...
    compile project(':testjunit')
    ...
}

【问题讨论】:

    标签: java gradle build


    【解决方案1】:

    我可以使用this question 中提到的解决方案来解决问题。 基本上,我在defaults.gradle 中添加了一个指令evaluationDependsOn(':testjunit')。它解决了这个问题。该指令的参考是here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 2019-12-23
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多