Gradle任务依赖

时间:2018-04-19 18:42:36

标签: gradle groovy build.gradle gradlew

问:一项任务是否可以依赖另一项具有特定参数的任务?如果答案是肯定的,那么如何实现呢?

我最近为自己打开了Gradle,并对下一个感到好奇:

我们说我希望每次执行copy任务时都要复制一个构建的子文件夹。

task copy (type: Copy) {
    dependsOn build 
    from '[fromName]'
    into '[intoName]'
}

在我的情况下,我想要复制文件夹 build / reports / profile ,但问题是该文件夹是通过执行build --profile任务创建的。 / p>

那么,有没有机会完成以下任务:

task copy (...) {
    dependsOn build --profile
    from ...
    into ...
}

顺便说一句,插件project-report不会创建此文件夹,而是依赖于其任务。

注意:完成它并不重要,如果可能的话,我只是感兴趣。

1 个答案:

答案 0 :(得分:0)

您不能直接将dependsOn的参数传递给任务,但您可以创建自定义Exec任务并使用gradle包装器通过命令行解释器(cmd)传递参数:

task buildWithArgument(type: Exec) {
    commandLine 'cmd', '/c', 'gradlew.bat build --profile'
}

task copy (type: Copy) {
    dependsOn buildWithArgument
    from '[fromName]'
    into '[intoName]'
}