Gradle任务取决于其他任务输出?

igr*_*igr 2 gradle

我有一个依赖于的自定义任务installDist- 不仅用于执行,还用于installDist输出:

project.task('run', type: JavaExec, dependsOn: 'installDist', overwrite: true) {
    def libdir = new File("$project.tasks.installDist.destinationDir/lib")
    ...
Run Code Online (Sandbox Code Playgroud)

碰巧当第一次运行时,由于Gradle的工作方式,libdir它不会捕获目标目录installDist.由于我需要libdir用于我的任务,我如何等待installDist完成,然后运行我的任务?

我知道我可以installDist在我的任务之前明确地运行,但我想要在完成之后运行我的任务clean.

igr*_*igr 5

在@Ben Greens回答之后,我想:

project.task('run', type: JavaExec, dependsOn: 'installDist', overwrite: true) {
    doFirst {
        def libdir = new File("$project.tasks.installDist.destinationDir/lib")
...
Run Code Online (Sandbox Code Playgroud)

所以这发生在我的任务执行之前,但是在installDist执行之后.