这甚至可能吗?我有类似的东西:
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
似乎有效。这是最好的方式吗?
答案 0 :(得分:0)
在Gradle中,foo.dependsOn(bar, baz)
相当于foo.dependsOn(bar); foo.dependsOn(baz)
。 不暗示bar
和baz
之间的任何顺序,就像在Ant中一样(具有软依赖功能)。
您能否了解一下taskB
的作用,以及您认为它需要在classes
之前运行的原因?
编辑:
根据您在下面的评论,我会做类似的事情:
sourceSets.main.resources.srcDir "build/taskB" // output dir of taskB
processResources.dependsOn(taskB)
当然,这可以通过多种方式进行改进,但它可以很好地掌握基础知识。