如何让gradle中的JavaExec任务的类任务依赖于另一个任务?

时间:2013-01-23 00:03:39

标签: gradle

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

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似乎有效。这是最好的方式吗?

1 个答案:

答案 0 :(得分:0)

在Gradle中,foo.dependsOn(bar, baz)相当于foo.dependsOn(bar); foo.dependsOn(baz)暗示barbaz之间的任何顺序,就像在Ant中一样(具有软依赖功能)。

您能否了解一下taskB的作用,以及您认为它需要在classes之前运行的原因?

编辑:

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

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

当然,这可以通过多种方式进行改进,但它可以很好地掌握基础知识。