Почему Gant не терпит неудачу при возвращении положительного целого числа?

Когда у меня есть следующее build.gant

target(example: 'example target') {
  echo(message: "name : ${it.name}, description: ${it.description}")
}

target(alwaysFails: 'never succeed') {
  27
}

Если я запускаю gant alwaysFails, сборка не удалась. Но если я запустил gant alwaysFails example, сборка прошла успешно.

На самом деле я ожидал, что сборка не удалась, и цель «пример» не запустилась.

Как сделать так, чтобы Гант остановился при сбое цели?


person KwonNam    schedule 17.10.2012    source источник


Ответы (2)


Я считаю, что вы должны сделать цели зависимыми друг от друга, поэтому

target(alwaysFails: 'never succeed') {
  27
}

target(example: 'example target') {
  depends( alwaysFails )
  echo( message: "name : ${it.name}, description: ${it.description}" )
}

Затем работает:

gant example

Запустит alwaysFails, а затем запустит example в случае успеха (чего никогда не происходит). Таким образом, я считаю, что вы получаете желаемую функциональность.

person tim_yates    schedule 17.10.2012
comment
Спасибо, но проблема в том, что alwaysFailes — необязательная цель. Я не должен заставлять example зависеть от alwaysFails. Это что-то вроде целей clean и compile. Иногда нам нужно вызвать gant clean compile, но compile не должно зависеть от clean - person KwonNam; 17.10.2012

Я заставляю цель выбрасывать исключение, когда она всегда должна терпеть неудачу. Оно работает.

throw new RuntimeException('error message..')
person KwonNam    schedule 18.10.2012