Почему цель Gant выполняется при сбое одной из зависимостей?

Это содержание build.gant:

target('cleanCache': 'description') {
  ...
}    

target('remove': 'description') {
  ...
  File app = new File("...")
  if (!app.exists()) {
     println "Error"
     return -1
  }
  ...
  // continue if no error
  ...
}

target('default': 'description') {
  depends(cleanCache, remove)
}

Если я запускаю этот скрипт, я получу ожидаемый результат, если цель remove не удалось:

...
BUILD FAILED
Total time: 2,21 seconds

Но если я добавлю реализацию к default цель, как следующее:

target('default': 'description') {
  depends(cleanCache, remove)
  println "Do default task"
}

Когда цель remove не удалось, println будет выполнен, и результат:

...
BUILD SUCCESSFUL
Total time: 2,20 seconds

default цель зависит от remove цель. Если remove цель не достигнута, я ожидаю default цель тоже не удалась. Как это сделать?

1 ответ

Решение

Вместо того, чтобы возвращать целочисленное значение для обозначения неудачной цели, вы должны вызвать fail(),

Другие вопросы по тегам