2014-10-28 36 views
0

我有一个任务需要配置以依赖于另一个现有发行任务。我写的代码片段如下,它工作正常 - 文件复制到bundleDir预期:Gradle任务的行为与Type修饰符的行为不同

task releaseJarsTask1 (dependsOn: releaseTask) { 
    copy { 
     from fileTree(dir: releaseRepoDir, include: (releaseTask.project.name + '*/*.jar')).files 
     into bundleDir 
    } 
} 

根据我的摇篮的相对较新的理解,下面还应该工作,但它没有 - 它产生无输出:

task releaseJarsTask2 (dependsOn: releaseTask, type: Copy) { 
    from fileTree(dir: releaseRepoDir, include: (releaseTask.project.name + '*/*.jar')).files 
    into bundleDir 
} 

为什么?

回答

0

它只是偶然地工作。在第一个任务中,您在配置阶段执行复制,因为copy()的调用是在配置闭包中完成的。在第二个任务中,复制操作只能在执行任务时完成。尝试使用gradle releaseJarsTask2手动执行任务。

+0

谢谢马克。这确实是这个问题,因为我试图挂钩一个基于BNDTools的发布任务 - 我把它封装在gradle.taskGraph.whenReady中,这意味着这些任务没有被配置为执行。当我删除它并做了其他一些依赖性更改时,它开始工作。 – privacycadan 2014-10-28 13:14:09

相关问题