Поскольку вы пояснили, что ваши цели находятся в разных проектах, т.е. в разных файлах сборки, вам придется использовать задачи ant
или subant
вместо antcall
.Задача subant
имеет параметр с именем failonerror
, который можно установить на false, чтобы сбой не остановил сборку верхнего уровня.Я не знаю, возможно ли передать обратно сборке верхнего уровня информацию о том, что сборка подпроекта действительно провалила свои тесты.
Если все ваши цели были в одном проекте, вы могли бы изменитьваши задачи junit, чтобы они не проваливались при сбое теста, а вместо этого установите свойство, указывающее, что произошел сбой:
<junit failureProperty="test.failed"> ... </junit>
После этого вы можете сделать так, чтобы ваша цель mainbuild провалилась после генерации отчета JUnit:
<fail if="test.failed"> ... </fail>
Я узнал об этом из книги "Муравей в действии".