Gradle任务dependsOn不起作用

时间:2014-07-14 08:43:52

标签: gradle

我想在任务之间设置简单的依赖关系。

我的build.gradle

apply plugin: 'java'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

task('Second', dependsOn: 'First') {
    println "Second"
}

task('First') {
    println "First"
}

因此,我希望First而不是Second。 但我得到了:

$ gradle build
Second
First
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build UP-TO-DATE

我做错了什么? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:11)

仍然是同样的错误..您处于配置阶段。向任务添加操作,一切都会好的。这将有效:

apply plugin: 'java'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

task('Second', dependsOn: 'First') << {
    println "Second"
}

task('First') << {
    println "First"
}

这是一个配置阶段:

task t1 {
   println "t1"
}

配置阶段的代码在操作之前执行。使用<<(leftShift)运算符添加操作。

task t1 << {
   println "t1"
}

Here是文档。

<<只是被覆盖的运算符do doLast方法。没有它,它将是:

apply plugin: 'java'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

task('Second', dependsOn: 'First') {
   doLast {
      println "Second"
   }
}

task('First') {
   doLast {
      println "First"
   }
}

我还建议您阅读this博文。