为什么gradle任务缺少源?

为什么gradle任务缺少源?,gradle,Gradle,Gradlew newb在这里,试图找出为什么当我调用我的任务时,它缺少预期的源。我的印象是,基于gradle-jars--info $ gradle explodeJars --info ... :copyJarsOver (Thread[main,5,main]) completed. Took 0.051 secs. :explodeJars (Thread[main,5,main]) started. :explodeJars Skipping task ':explodeJars' a

Gradlew newb在这里,试图找出为什么当我调用我的任务时,它缺少预期的源。我的印象是,基于
gradle-jars--info

$ gradle explodeJars --info
...
:copyJarsOver (Thread[main,5,main]) completed. Took 0.051 secs.
:explodeJars (Thread[main,5,main]) started.
:explodeJars
Skipping task ':explodeJars' as it has no source files.
:explodeJars UP-TO-DATE
:explodeJars (Thread[main,5,main]) completed. Took 0.0 secs.
有关任务:

task copyJarsOver(type: Copy, dependsOn: ["buildAll"]) {
  from 'some/folder/cool.jar'
  from 'another/folder/fancy.jar'
  from 'best/folder/awesome.jar'
  into 'build/modules'
  rename { String fileName ->
    fileName.replace('.jar', '.zip')
  }
}

// Explodejars doesn't work when first ran, works second time <?>
task explodeJars(type: Copy, dependsOn: ["copyJarsOver"]) {
  fileTree(dir: 'build/modules').each({ zipModule ->
    def module = zipTree(zipModule)
    from module
  })
  into 'build/explodedJars'
}
explodeJars.mustRunAfter copyJarsOver
task copyJarsOver(类型:Copy,dependsOn:[“buildAll”]){
来自'some/folder/cool.jar'
来自'other/folder/fancy.jar'
来自“best/folder/awesome.jar”
进入“构建/模块”
重命名{字符串文件名->
fileName.replace('.jar'、'.zip')
}
}
//Explodejars第一次运行时不工作,第二次运行时工作
任务类型:复制,依赖:[“copyJarsOver”]){
文件树(dir:'build/modules')。每个({zipModule->
def模块=zipTree(zipModule)
来自模块
})
进入“build/explodedJars”
}
explodesjars.mustRunAfter copyJarsOver

好的,所以我对任务的生命周期感到困惑

任务中的代码在配置时执行,此时文件尚未复制到文件夹中。如果我想在执行时运行它,我应该把它放在一个doLast中


无论哪种方式,from都接受一个闭包,比如:
from{fileTree(…).collect{zipModule->zipTree(zipModule)}

通过将我的explodesJar任务更改为使用一系列from来修复它,但我仍然对为什么这个解决方案不起作用感兴趣。