防止Gradle Zip任务在任务执行之前下载依赖项

时间:2014-04-04 02:21:04

标签: gradle

我有一个简单的gradle任务,可以拉开maven jar(例如)。在执行任务之前,如何让这个任务不下载jar?

apply plugin:'base'
repositories { mavenCentral() }

configurations.create 'myDep'
dependencies {
   myDep 'commons-io:commons-io:1.0'
}
task zip(type:Zip) {
   from { configurations.myDep.collect { zipTree(it) } }
}

如果我运行了#gradle tasks',它会意外地下载jar:

$ gradle tasks
Download http://repo1.maven.org/maven2/commons-io/commons-io/1.0/commons-io-1.0.pom
Download http://repo1.maven.org/maven2/commons-io/commons-io/1.0/commons-io-1.0.jar
:tasks

1 个答案:

答案 0 :(得分:1)

我认为gradle tasks是一种特殊情况,因为它需要评估所有任务的输入以确定(并显示)它们的任务依赖性。通常,只有在Gradle决定执行zip任务时,才会评估zip任务的输入(因此会下载Jar)。这将在构建任务执行图(再次确定任务依赖性)期间发生,即在任何任务执行之前(但只有如果 Gradle已决定执行{{ 1}})。

如果绝对必须阻止在zip的情况下下载Jar,您可以将gradle tasks配置为from,但这不是一般解决方案,可能会导致其他问题(最新的检查无法正常工作,任务依赖性无法自动推断)。