我有一个简单的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
答案 0 :(得分:1)
我认为gradle tasks
是一种特殊情况,因为它需要评估所有任务的输入以确定(并显示)它们的任务依赖性。通常,只有在Gradle决定执行zip
任务时,才会评估zip
任务的输入(因此会下载Jar)。这将在构建任务执行图(再次确定任务依赖性)期间发生,即在任何任务执行之前(但只有如果 Gradle已决定执行{{ 1}})。
如果绝对必须阻止在zip
的情况下下载Jar,您可以将gradle tasks
配置为from
,但这不是一般解决方案,可能会导致其他问题(最新的检查无法正常工作,任务依赖性无法自动推断)。