Gradle:如何忽略解析特定依赖项的失败

时间:2016-07-05 12:27:59

标签: gradle dependency-management

dependencies {
    test "com.test:testA:1.0@jar"
    test "com.test:testB:1.0@jar"
}


task('collectArtifacts', type: Copy) {
     from project.configurations.test
     into 'artifacts/'
}

假设缺少工件testA且testB可用

当我使用./gradlew collectArtifacts时,它显然抱怨说 ">找不到com.test:testA:1.0"。

我如何向gradle询问:

  • 如果testA可用,则gradle会同时下载testA和testB
  • 如果testA不可用,我希望gradle忽略testA依赖项的解析失败,并继续下载testB。

2 个答案:

答案 0 :(得分:7)

也许有点违反直觉,您可以将getResolvedConfiguration()getLenientConfiguration()结合使用,以检索在某些引用无法解析时不会失败的配置。

task('collectArtifacts', type: Copy) {
     from project.configurations.test.resolvedConfiguration.lenientConfiguration.getFiles(Specs.satisfyAll())
     into 'artifacts/'
}

请参阅documentation

答案 1 :(得分:0)

您可以尝试以下方法。不确定test到底是什么,所以我假设它是testCompile的拼写错误。

task('collectArtifacts', type: Copy) {
    from project.configurations.testCompile.findAll { it.exists() }
    into 'artifacts/'
}