Определите плагины Maven в родительском pom, но вызывайте плагины только в дочерних проектах

У меня есть ряд проектов, которые должны запускать одну и ту же серию плагинов Maven во время их сборки. Я хотел бы избежать повторного объявления всей этой конфигурации в каждом проекте, поэтому я сделал их все из проекта «шаблона» родительского pom, который содержит только те исполнения плагинов (8 разных моджо). Но я хочу, чтобы эти плагины выполнялись только на дочерних проектах, а не на родительском проекте во время сборок Maven.

Я пытался выполнить это четырьмя различными способами, каждый с побочным эффектом, который мне не нравится.

Объявите выполнение плагина в родительской помпеbuild/plugins элемент и использовать свойства-Maven-плагин длявключитьskip свойства других плагинов в родительском проекте. Это не сработало, потому что одна из целей плагина (maven-dependency-plugin: build-classpath) не имеетskip свойство.

Объявите выполнение плагина в родительской помпеbuild/pluginManagement элемент. К сожалению, это требует от меня переопределить каждый из восьми плагинов вbuild/plugins Элемент pom каждого дочернего проекта, как:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
</plugin>
...

Это слишком многократно и проблематично, если мне когда-нибудь понадобится изменить плагины в шаблоне pom.

Объявите выполнение плагина в профиле в родительском pom, который активируетсяотсутствие изnobuild.txt file (который существует в родительском pom, поэтому плагины там не выполняются):

<profiles>
    <profile>
        <activation>
            <file>
                <missing>nobuild.txt</missing>
            </file>
        </activation>
        <build>
            ....
        </build>
    </profile>
</profiles>

Это работает по большей части, за исключением того, что путь к файлу вmissing Элемент, кажется, основан натекущий рабочий каталог вместо проекта basedir. Это ломает некоторые многомодульные сборки, которые я хотел бы иметь.Редактировать: чтобы уточнить, родительский «шаблонный» проект сам по себе является модулем в многомодульном проекте, и сборка прерывается, когда я, например, пытаюсь сделатьmvn install на корню. Структура проекта выглядит так:

+ job
|- job-core
|- job-template
|- job1                   inherits from job-template
|- job2                   inherits from job-template

Настройте пользовательский жизненный цикл и упаковку. Кажется, это позволяет мне связывать плагины с фазами жизненного цикла,но не указывать какую-либо конфигурацию.

Итак, есть ли другой способ указать несколько исполнений плагинов Maven, которые можно повторно использовать в нескольких проектах (с минимальным повторением в каждом из этих проектов)?

Ответы на вопрос(5)

Ваш ответ на вопрос