Как я могу проверить раздел pluginManagement моего родительского POM в Maven? - PullRequest
3 голосов
/ 09 сентября 2011

Я использую макет проекта, подобный первому, описанному в принятом ответе на на этот вопрос. Если мой родительский модуль управляется, создается и разворачивается отдельно от POM моего проекта, как я могу обеспечить pluginManagement раздел моего родителя-pom действителен?

Насколько я могу судить, Maven проверяет только те плагины, которые фактически используются в сборке. Поскольку большинство плагинов, которые я объявляю в pluginManagement, не используются при сборке parent-pom, у меня нет возможности узнать, есть ли у меня недопустимая запись, пока дочерний проект не попытается использовать плагин, который он ожидает быть управляемым родителем-помпой.

Я пробовал плагин версий, но он, кажется, игнорирует плагины, которые не существуют (например: опечатки). Я попытался объявить плагины в моем родительском pom с помощью inherited=false, но затем я должен привязать каждый объявленный плагин к фазе. Кроме того, я не обязательно хочу запускать эти плагины против моего родителя. * * 1010

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

1 Ответ

2 голосов
/ 17 сентября 2011

В вашем родительском модуле pom создайте набор тестовых проектов maven, все они наследуют родительский pom, используя некоторые или все определенные здесь плагины, и запустите родительский pom и проверьте успешность сборки тестовых проектов maven. maven-invoker-plugin может помочь вам в достижении всего этого.Этот плагин часто используется для тестирования плагинов Maven Core, поэтому вы можете найти больше примеров использования в источниках плагинов Maven Core .

Еще один совет - добавлять плагины в родительский pom pluginManagement только тогда, когда выесли они вам понадобятся, то у вас будет возможность это тоже проверить.Итак, начните с создания проекта, в котором используется данный плагин, которого еще нет в родительском pom, добавьте плагин в родительский pom, выпустите снимок родительского pom, используйте этот снимок в новом проекте, если все в порядке освободите родительский pom, и настройте ссылкуродительскому пом в новом проекте.Позже для другого или того же проекта, если вам нужен дополнительный плагин или более новая версия плагина, уже указанная в родительском pom, отрегулируйте родительский pom, выпустите новый снимок родительского pom, проверьте, работает ли он для данного проекта, и если он действительно выпускает родительский pom, инастроить родительскую ссылку на вновь выпущенный родительский pom.

...