У меня есть многомодульный проект maven, и я хотел бы иметь возможность запустить операцию (antrun) после того, как все подмодули завершат свое выполнение.
В моих проектах я создаю RPM из каждого подмодуля, а на этапе развертывания копирую RPM (по ssh) в репозиторий RPM.
Для репозитория RPM требуется, чтобы после добавления новых RPM я выполнил команду createb, чтобы он мог их проиндексировать.
Так что у меня есть antrun, который на самом деле запускает scp и копирует RPM в репозиторий. Он работает для каждого подмодуля, который фактически производит RPM и подключен к фазе maven deploy . Что я могу сделать, это после того, как каждый scp запустит команду createrepo, но это будет расточительно, у меня более 10 подмодулей, и каждый createrepo занимает около минуты, поэтому я буду тратить драгоценное время на сборку.
Что я хотел бы сделать, это после того, как все подмодули закончили, затем запустите createrepo. Однажды.
Моей первой попыткой было подключить antrun, вызывающий команду createrepo, к фазе родительского pom (супер-pom) deploy . Я сделал это, и проблема заключалась в том, что фаза развертывания родителя запускается до фазы развертывания подмодулей. Я хотел, чтобы он запускался после
Я не могу присоединить команду createrepo к другому более позднему этапу, поскольку этап развертывания является последним в жизненном цикле.
Итак, мой вопрос: есть ли способ запустить «зачистку» antrun или плагин в целом, который будет запущен один раз после успешного завершения всех операций сборки всех подмодулей?
Хаком было бы создать еще один субмодуль и убедиться, что он последний, сделав его зависимым от всех других модулей и запустить createrepo из фазы развертывания этого модуля. Но это ужасно и сложно поддерживать. Я предпочитаю более чистое решение.
Спасибо
Maven версия 2.2.1