Maven - невозможно активировать профили в многомодульном проекте - PullRequest
7 голосов
/ 03 апреля 2012

Я испытываю некоторые трудности при настройке нашего проекта с Maven и мне нужна помощь:)

Скажем, у меня есть многомодульный проект, с модулями A и B (также есть ~ 20 других)но все они наследуются от некоторого «корневого» pom.

У меня также есть пользовательский плагин maven, который должен быть включен только для модуля A.

Плагин должен работать одинаково для всехмодули, поэтому я положил конфигурацию в корень пом.

Теперь плагин определен в профиле, так что он будет активирован только тогда, когда я явно хочу, чтобы:

mvn test -PrunMyPlugin

это должно работать, если я запускаю эту команду из корневого каталога и если я работаю в каталоге модуля A. В модуле B плагин не должен запускаться независимо от этого профиля.

С другой стороныhand

mvn test

никогда не должен вызывать плагин.

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

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

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

Определение профиля в родительском элементе, а затем его активация из дочернего или другого профиля в настоящее время не поддерживается ни Maven 2, ни 3.Есть пара вопросов и ответов на стеке потока [1], охватывающих детали.В системе отслеживания проблем Maven имеются соответствующие запросы функций:

@Предложение Рагурама использовать <pluginManagement> - это один из способов выполнить эту работу без дублирования конфигурации.Другой способ заключается в явном дублировании конфигурации в каждом дочернем модуле, для которого она требуется.

[1]: Активировать различные профили Maven в зависимости от текущего модуля? ; Почему я не могу активировать профиль Maven2 из другого профиля?

1 голос
/ 03 апреля 2012

Один из способов выполнить это требование - определить ваши плагины в разделе <pluginManagement> вашего многомодульного родительского модуля.В каждом проекте, где вам нужно использовать этот плагин, вы объявляете его.

Таким образом, вы можете определить все детали и конфигурацию плагина в центральном месте, а также можете использовать его только для соответствующих модулей.Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...