Gradle任务与类型修饰符的行为不同

Gradle任务与类型修饰符的行为不同,gradle,Gradle,我有一个任务需要配置为依赖于另一个现有的发布任务。我已经编写了如下代码片段,工作正常-文件按预期复制到bundleDir中: task releaseJarsTask1 (dependsOn: releaseTask) { copy { from fileTree(dir: releaseRepoDir, include: (releaseTask.project.name + '*/*.jar')).files into bundleDir }

我有一个任务需要配置为依赖于另一个现有的发布任务。我已经编写了如下代码片段,工作正常-文件按预期复制到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中,这意味着这些任务没有被配置为执行。当我删除它并做了一些其他依赖项更改时,它开始工作了。