如何使gradle copy任务仅在执行时运行

如何使gradle copy任务仅在执行时运行,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我有一个用于复制的渐变任务,如下所示: task hello << { println "hello" } task myCopy(type: Copy) { println "copy" from(file('srcDir')) into(buildDir) } gradle hello 现在我明白了这是我想要的行为。我在这里通读了整个Gradle任务页面:。但我想让“myCopy”任务只在显式执行时执行。换句话说,我想使“myCopy”在我执

我有一个用于复制的渐变任务,如下所示:

task hello << {
    println "hello"
}

task myCopy(type: Copy) {
    println "copy"
    from(file('srcDir'))
    into(buildDir)
}
gradle hello
现在我明白了这是我想要的行为。我在这里通读了整个Gradle任务页面:。但我想让“myCopy”任务只在显式执行时执行。换句话说,我想使“myCopy”在我执行“hello”时不执行,而仅在我运行命令时执行:

gradle myCopy

有办法做到这一点吗?谢谢

这不是执行,而是配置。仔细看看,如果不运行复制任务,就不会复制任何内容。配置总是在发生,对于您拥有的所有任务,在您的情况下,您正在配置期间打印“副本”。将其移动到doLast部分,以便在执行阶段打印,如下所示:

task myCopy(type: Copy) {
   doLast { 
       println 'Copy'
   }
   from(file('srcDir'))
   into(buildDir)
}
注意,doLast闭包与具有