0

这甚至可能吗?我有类似的东西:

task taskB(dependsOn: taskA) {
    // Do stuff.
}

task taskA {
    // Do stuff.
}

task runClass(dependsOn: 'classes', type: JavaExec) {
    main = 'com.some.package.MainClass'
    classpath = some.classpath
}

我想在 JavaExec 任务taskB之前运行。classes我该怎么办?将其更改为dependsOn: ['taskB', 'classes']似乎没有帮助 - 它仍然classes首先。

编辑:

添加classes.dependsOn taskB似乎有效。不过,这是最好的方法吗?

4

1 回答 1

0

在 Gradle 中,foo.dependsOn(bar, baz)相当于foo.dependsOn(bar); foo.dependsOn(baz). 它并不暗示barand之间的任何顺序baz,就像在 Ant 中那样(具有软依赖特性)。

您能否阐明什么是什么taskB,以及为什么您认为它需要先运行classes

编辑:

根据您在下面的评论,我会做类似的事情:

sourceSets.main.resources.srcDir "build/taskB" // output dir of taskB
processResources.dependsOn(taskB)

当然,这可以通过多种方式进行改进,但它得到了正确的基础。

于 2013-01-23T00:54:40.870 回答