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

时间:2014-10-28 01:37:53

标签: gradle

我有一项任务需要配置为依赖于另一个现有的发布任务。我已经编写了如下代码片段,它工作正常 - 文件按预期复制到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
}

为什么呢?

1 个答案:

答案 0 :(得分:0)

它之前只是顺带工作。在第一个任务中,您在配置阶段执行复制,因为对copy()的调用是在配置闭包中完成的。在第二个任务中,只有在执行任务时才会执行复制操作。尝试使用gradle releaseJarsTask2手动执行任务。