Многомодульный проект Maven - как запустить операцию после завершения всех подмодулей

У меня есть проект maven с несколькими модулями, и я хотел бы иметь возможность запустить операцию (antrun) после того, как все подмодули завершили свое выполнение.

В своих проектах я создаю RPM из каждого подмодуля, а на этапе развертывания я копирую RPM (по ssh) в репозиторий RPM.
Репозиторий RPM требует от меня запуска команды createdb после добавления новых RPM, чтобы он мог их проиндексировать.
Итак, у меня есть antrun, который на самом деле запускает scp и копирует RPM в репо. Он запускается для каждого подмодуля, который фактически производит RPM, и связан с фазой maven deploy . Что я могу сделать, так это после каждого scp запустить команду createrepo, но это было бы расточительно, у меня более 10 подмодулей, и каждый createrepo занимает около минуты, поэтому я буду тратить драгоценное время на сборку.

Я бы хотел сделать после завершения всех подмодулей запустить createrepo. Однажды.

Моя первая попытка состояла в том, чтобы подключить antrun, который вызывает команду createrepo, к фазе развертывания родительского pom (супер-pom) . Я сделал это, и проблема заключалась в том, что родительская фаза развертывания выполняется до фазы развертывания подмодулей. Я хотел, чтобы он запускался после
Я могу » t прикрепить antrun createrepo к любой другой более поздней фазе, так как фаза развертывания является последней в жизненном цикле.

Итак, мой вопрос: есть ли способ запустить antrun "очистки" или плагин в целом, который будет выполняться один раз, после того, как все операции сборки всех подмодулей завершились успешно?

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

Спасибо

Версия Maven - 2.2.1

8
задан Ran 16 November 2010 в 07:47
поделиться