Я создал задачу Gradle в Java:
class TestTask extends Exec {
public TestTask() {
doLast(new Action<Object>(){
@Override
public void execute(Object task) {
System.out.println("Should be last ");
}
});
doFirst(new Action<Object>(){
@Override
public void execute(Object task) {
System.out.println("Should be first ");
}
});
commandLine("echo", "Should be between");
}
}
Выполняя эту задачу, я ожидаю получить
Should be first
Should be between
Should be last
, но вместо этого получаю
Should be between
Should be first
Should be last
Я собираюсь преобразовать плагин из Groovy в Java, а в Groovy порядок обработки был таким, как ожидалось, когда он определен следующим образом:
task dofirsttest(type: Exec) {
doFirst{
println "Should be first"
}
doLast{
println "Should be last"
}
commandLine "echo", "Should be between"
}
Что-то не так с моей задачей? [ ! d4]
commandLine("echo", "Should be between"); находится в фазе конфигурации задачи. Так что это будет выполнено в первую очередь. Посмотрите: https://docs.gradle.org/current/userguide/build_lifecycle.html