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

xas*_*ask 4 dependency-management gradle

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/'
}
Run Code Online (Sandbox Code Playgroud)

假设缺少工件testA并且testB可用

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

我怎么能问gradle:

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

maj*_*ajk 8

也许有点违反直觉,您可以getResolvedConfiguration()结合使用getLenientConfiguration()来检索一些配置,如果某些引用无法解析,则该配置不会失败.

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

文档.