Вопрос

Я создал пользовательский плагин Maven2 с помощью Ant.Я хотел бы вызвать другой подключаемый модуль maven, в частности плагин Cargo Maven2, сразу после успешного завершения пользовательского плагина Ant.Однако я не хочу привязывать плагин Cargo к другой цели или этапу.Есть ли способ заставить их запускаться последовательно без необходимости написания пакетного скрипта?Есть ли возможность, чтобы пользовательский подключаемый модуль Ant вызывал подключаемый модуль Cargo?

Это было полезно?

Решение

Смотрите это обсуждение: Ре:вызывающий плагин в другом плагине? По словам разработчиков Maven, плагины должны работать не так.

Однако есть один интересный комментарий:

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

Cargo - это не только плагин Maven, он также имеет Java API и Муравьиная задача.Так что вы, вероятно, могли бы:

  • вызовите задачу Cargo Ant из вашего Ant mojo (я думаю, вам просто понадобятся банки Cargo в пути к классу вашего плагина);

  • перепишите свой Ant mojo на Java и вызовите Cargo API (вы бы хотели посмотреть исходные тексты плагина Cargo).

Другие советы

Ant-скрипт, который выполняет maven-ant-plugin, на самом деле не знает о Maven как таковом; Этот плагин предназначен для обратной совместимости с пользовательскими задачами Ant. Я не могу придумать чистый способ делать то, что вы хотите, хотя может быть какой-то взлом, который позволяет вам это сделать.

Также должна быть возможность выполнить второй экземпляр Maven изнутри Ant, который выполняет исключительно цель Cargo, но в этом случае вы можете столкнуться с проблемами с заблокированными файлами и т.п. Чтобы сделать это, просто используйте тег в вашем скрипте Ant и вызовите " mvn " исполняемый файл с соответствующими целями в качестве аргументов.

Самый простой способ - просто привязать цель Cargo к этапу сборки и запустить его после завершения Ant. Я не вижу никаких недостатков в этом подходе - вы на самом деле не указали никаких конкретных причин, по которым вы хотите этого избежать.

Возможно, вас заинтересуют два следующих maven

Плагин GMaven позволяет вам писать плагины maven с помощью groovy.Это дает вам полный доступ к ant с помощью Муравьиный Строитель, это очень простой способ написания ant-скриптов на Groovy.Затем в этом Groovy mojo вы могли бы вызвать любой maven mojo, используя Mojo Executor.

Я использовал их в нескольких пользовательских плагинах maven, и я не нашел более простого способа написания и объединения mojos.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top