Запуск определенной цели плагина Maven из командной строки в субмодуле проекта многомодульного реактора

Я ищу общую технику, но давайте дадим конкретный пример. У меня есть многомодульный проект, и я хотел бы запустить exec : java цель из командной строки для одного из подмодулей моего проекта.

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

Что мне действительно нравится, так это возможность запустить exec: java против реактора Maven, где построен путь к классам. из активных модулей проекта в реакторе Maven. Проблема в том, что я не уверен, что это возможно. Наивным подходом является запуск цели exec: java из корня проекта, но при этом пытается запустить плагин для каждого модуля в проекте, в отличие от целевого модуля, который меня интересует.

Есть идеи? Я знаю, что моим мотивирующим примером был exec: java , но на самом деле есть ряд отдельных целей плагинов, которые я хотел бы время от времени запускать против моего проекта, выходя за рамки полного жизненного цикла сборки.

34
задан cricket_007 31 October 2019 в 23:51
поделиться

1 ответ

У меня есть многомодульный проект, и я хотел бы запустить плагин exec: java из командной строки для одного из подмодулей моего проекта. .

Я не говорю, что это будет соответствовать вашему конкретному варианту использования, но можно запустить цель на подмножестве многомодульной сборки, используя -pl, --projects option:

mvn exec:java -pl my-module

Я знаю, что один из подходов состоит в том, что я могу запустить "mvn install" для всего проекта, а затем просто перейти в каталог подмодуля, запустить команду exec: java из командной строки и разрешить артефакты в моем локальный репозиторий.

Разрешение зависимостей действительно выполняется через локальный репозиторий.

Что мне действительно нужно, так это возможность запускать exec: java против реактора Maven, где путь к классам создается из активных модулей проекта в реакторе Maven.

Это не совсем то, что делает сборка реактора. Сборка реактора строит ориентированный граф модулей, выводит соответствующий порядок сборки из этого графа и запускает цель / фазу для модулей в вычисленном порядке. Сборка реактора не создает некий «глобальный» путь к классам.

Наивный подход - запустить цель exec: java из корня проекта, но это пытается запустить плагин для каждого модуля в проекте, в отличие от целевого модуля, который я интересует.

Ну, это ожидаемое поведение.Это просто не похоже на то, что вы на самом деле ищете.

Есть идеи? Я знаю, что моим мотивирующим примером был exec: java, но на самом деле есть несколько отдельных целей плагина, которые я хотел бы время от времени запускать в моем проекте за пределами полного жизненного цикла сборки

Сборка реактора делает разрешите это, но, как я уже писал, вы, кажется, ищете чего-то другого. Может быть, если вы проясните вашу точную потребность, я смогу дать лучший ответ.

38
ответ дан 27 November 2019 в 16:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: