Gradle Zip任务即使在干净的构建之后也是最新的

Gradle Zip任务即使在干净的构建之后也是最新的,gradle,groovy,zip,Gradle,Groovy,Zip,我有以下任务定义 task generateFile { def file = new File("$buildDir/setclasspath.sh") outputs.file(file) doLast { file.text = "sample" } } 及 taskcreatedistro(type:Zip,dependsOn:['jar','generateFile'])您需要首先了解Gradle的各个阶段。主要记住有配置和执行阶段。这是您以前的问题: 您在

我有以下任务定义

task generateFile {
  def file = new File("$buildDir/setclasspath.sh")
  outputs.file(file)
  doLast {
    file.text = "sample"
   }
}


taskcreatedistro(type:Zip,dependsOn:['jar','generateFile'])您需要首先了解Gradle的各个阶段。主要记住有配置和执行阶段。这是您以前的问题:


您在
createDistro
中犯了同样的错误。当您使用
时,请等待。为什么generateFile运行?你不是在
gradle clean build
中调用它!抱歉,createDistro还有一个dependsOn:“jar”。updatedumm
gradle clean build
仍然不会调用generateFile,除非您显式调用
gradle createDistro
ahh,我注意到这行代码:build.dependsOn createDistroth感谢您的帮助,我想我现在就明白了。就拿这个例子来说,我把二和二放在一起。
task createDistro(type: Zip, dependsOn: ['jar', 'generateFile']) << {    
 from generateFile {
   fileMode = 0755
   into 'bin'
 }
}
apply plugin: 'java'

task generateFile {
  def file = new File("$buildDir/setclasspath.sh")
  outputs.file(file)
  doLast {
    file.createNewFile() // you need to actually create the file first
    file.text = "sample"
   }
}

task createDistro(type: Zip, dependsOn: ['jar', 'generateFile']) {    
// this is the configuration of Zip task, do not run it in doLast or '<<'
 from generateFile {
   fileMode = 0755
   into 'bin'
 }
}