Gradle任务执行顺序

时间:2016-06-06 15:30:16

标签: java gradle build.gradle

我有一个简单的任务,应该在类任务之前复制我的资源。

task copyJsMocks(type:Copy) {
    println "Is java script mocks needed: " + project.hasProperty('mockServices');

def mockSrc = projectDir.toPath().toString() + "/src/test/resources/site/services";
def mockDst = buildDir.toPath().toString() + "/resources/main/site/services";

if (project.hasProperty('mockServices')) {
    from mockSrc;
    into mockDst;
}

classes {
   dependsOn copyJsMocks;
}

......但根据日志,这项任务在开始时执行。

日志

.....
Is java script mocks needed: true
:phantomJsStop
:clean
:cleanEnonicDeploy
:compileJava
:compileGroovy UP-TO-DATE
:processResources
:classes

我该如何解决?

1 个答案:

答案 0 :(得分:1)

阅读发行版附带的Gradle用户指南PDF。

您将了解到任务分两个阶段执行,即"配置"阶段和"执行"相。该println语句在配置阶段执行,并且您无法控制在配置阶段执行任务的顺序。