Почему ant.bat не возвращает ошибочное состояние, когда выполнено программно?

Я недавно переместил свою студию от Подрывной деятельности до По необходимости и поместил некоторые примечания об этом, вид вскрытия, на моем блоге здесь . Надежда это полезно.

9
задан skaffman 21 September 2009 в 21:29
поделиться

4 ответа

Вам нужно запускать Ant через его .bat-файл? Это просто java-программа, вы можете просто выполнить ее внутри виртуальной машины, напрямую создав и выполнив среду выполнения Ant. Загляните внутрь ant.bat, посмотрите, что это за класс Main, и выполните его напрямую.

1
ответ дан 4 December 2019 в 15:22
поделиться

Я решил эту проблему, создав два дополнительных пакетных файла (не очень хорошо, но работает):

Содержимое файла myant.bat :

call ant2.bat %*

Содержимое файла ant2.bat :

call ant.bat %*
if errorlevel 1 (goto ERROR_EXIT)
exit /B 0
:ERROR_EXIT
exit /B 1

Теперь я могу вызвать myant.bat как процесс из java, и я получаю правильное значение выхода.

Извините, я не могу сказать , почему это работает. Это просто результат множества попыток.

2
ответ дан 4 December 2019 в 15:22
поделиться

Это давняя проблема для старых версий Ant в Windows. Я считаю, что он был исправлен в версии 1.7.0.

См. эту ошибку для получения подробной информации и это обсуждение , чтобы узнать о подходе к ее устранению.

0
ответ дан 4 December 2019 в 15:22
поделиться

Я зашел в эту тему и нашел ответ tangens, который почти решил мою проблему: код выхода всегда 0 на Windows из ant.bat, даже когда я намеренно провалил сборку ant; мне нужно получить код выхода из скрипта сборки TFS, и он показал, что даже %ERRORLEVEL% не может быть найден в сборке TFS.

Однако, я должен удалить /B из строк exit, иначе, он все еще всегда показывает мне код выхода 0.

0
ответ дан 4 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: