这有可能吗?我有类似的东西:
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
似乎有效。这是最好的方法吗? 最佳答案
在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)
当然,可以用许多方法来完善它,但是它使基础知识正确。