Дождитесь завершения другой сборки / задачи ANT

Я хочу, чтобы процесс ANT ждал завершения другой сборки или задачи.

Ситуация такова: я выполняю несколько сборок ANT одновременно. В этих сборках есть задачи по тестированию приложений. К сожалению, одновременно может выполняться только одна задача Flexunit, поскольку она использует сетевой сокет для связи с приложением AIR.

Процесс сборки должен дождаться завершения задач из других процессов сборки, прежде чем запускать свою задачу.

Как этого добиться?

Спасибо за любые подсказки,

Рафаль


person rafalry    schedule 30.06.2011    source источник


Ответы (1)


Используйте задачу ‹waitfor› с выбором синхронизации. Я всегда использую файл «IGotTheResourceSoYouCantHaveIt», который создается после ‹waitfor› и удаляется, когда я с ним закончу.

Подробности:

  • удалите файл в какой-нибудь "чистой" более высокоуровневой системе, чтобы в случае прерывания сборки он в конечном итоге был удален.
  • есть небольшая гонка между ‹waitfor› и созданием файла. В моем пользовании волноваться не стоит.
person Ed Staub    schedule 30.06.2011
comment
Я пошел по этому пути, но вместо высокоуровневой очистки я использовал задачу ‹trycatch› для удаления файла блокировки в ‹finally›. Спасибо. - person rafalry; 01.07.2011
comment
@rafalfy, примите во внимание, что существует множество общих режимов отказа, которые полностью выбьют вас из ‹ant›, не пройдя ‹finally›. Например, если тест по какой-то причине зависает, в конечном итоге процесс, вероятно, так или иначе будет остановлен. Возможно, это не проблема - я просто говорю. - person Ed Staub; 01.07.2011