У меня есть многомодульный проект, и я хотел бы запустить плагин exec:java
из командной строки для одного из подмодулей моего проекта.
Я не говорю, что это будет соответствовать вашему конкретному случаю использования, но можно выполнить цель для подмножества многомодульной сборки, используя опцию -pl, --projects <arg>
:
mvn exec:java -pl my-module
Я знаю, что один из подходов состоит в том, что я могу запустить «mvn install» для всего проекта, а затем просто зайти в каталог подмодуля, запустить команду exec: java из командной строки и разрешить артефакты в моем локальном репозитории. .
Разрешение зависимостей действительно выполняется через локальный репозиторий.
Что мне действительно нравится, так это возможность запустить exec:java
против реактора Maven, где путь к классам построен из активных модулей проекта в реакторе Maven.
Это не совсем то, что делает сборка реактора. Сборка реактора строит ориентированный граф модулей, выводит соответствующий порядок сборки из этого графика и запускает цель / фазу для модулей в вычисленном порядке. Сборка реактора не создает какой-то "глобальный" путь к классам.
Наивным подходом является запуск цели exec:java
из корня проекта, но он пытается запустить плагин для каждого модуля в проекте, в отличие от целевого модуля, который мне интересен.
Ну, это ожидаемое поведение. Это просто не то, что вы на самом деле ищете.
Есть идеи? Я знаю, что моим мотивирующим примером был exec: java, но на самом деле есть целый ряд отдельных целей плагинов, которые я хотел бы время от времени запускать против моего проекта, выходя за рамки полного жизненного цикла сборки
Сборка реактора это позволяет, но, как я писал, вы, похоже, ищете что-то другое. Может быть, если вы укажете свои точные потребности, я смогу дать лучший ответ.