Gradle任务与类型修饰符的行为不同
我有一个任务需要配置为依赖于另一个现有的发布任务。我已经编写了如下代码片段,工作正常-文件按预期复制到bundleDir中:Gradle任务与类型修饰符的行为不同,gradle,Gradle,我有一个任务需要配置为依赖于另一个现有的发布任务。我已经编写了如下代码片段,工作正常-文件按预期复制到bundleDir中: task releaseJarsTask1 (dependsOn: releaseTask) { copy { from fileTree(dir: releaseRepoDir, include: (releaseTask.project.name + '*/*.jar')).files into bundleDir }
task releaseJarsTask1 (dependsOn: releaseTask) {
copy {
from fileTree(dir: releaseRepoDir, include: (releaseTask.project.name + '*/*.jar')).files
into bundleDir
}
}
根据我对Gradle相对较新的理解,以下内容也应该有效,但它不起作用——它不产生任何输出:
task releaseJarsTask2 (dependsOn: releaseTask, type: Copy) {
from fileTree(dir: releaseRepoDir, include: (releaseTask.project.name + '*/*.jar')).files
into bundleDir
}
为什么? 它以前只是偶尔起作用。在第一个任务中,您将在配置阶段执行复制,因为对
copy()
的调用是在配置闭包中完成的。在第二个任务中,复制操作仅在执行任务时执行。尝试使用gradle releaseJarsTask2
谢谢标记手动执行任务。这确实是问题所在,因为我正试图连接到一个基于BNDTools的发布任务中——我将其包装在gradle.taskGraph.whenReady中,这意味着这些任务没有被配置为执行。当我删除它并做了一些其他依赖项更改时,它开始工作了。