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