Gradle任务dependsOn不起作用

问题描述 投票:2回答:1

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

我的build.gradle

apply plugin: 'java'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

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

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

因此,我期待FirstSecond。但我有:

$ 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

我究竟做错了什么?感谢帮助。

gradle
1个回答
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是文档。

<<只是被覆盖的运营商做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博客文章。

© www.soinside.com 2019 - 2024. All rights reserved.