Наследовать плагин сборки/расширение/в Maven

Скажем, в проекте Maven настроен классный плагин сборки:

<project>
    ...
    <build>
       ... extensions etc.
    </build>
    ...
</project>

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

Каков наилучший способ добиться этого?


person Parobay    schedule 07.01.2014    source источник


Ответы (2)


Используйте parent.pom. Разверните этот pom в своем локальном репозитории. Конечно, вы можете настроить parent.pom для каждого типа проектов, которые вы регулярно разрабатываете в своей организации. Вероятно, хорошей идеей будет master.pom с общими значениями (расположение серверов, название организации, общий стиль кода...). Конкретные poms проекта будут использовать это как родитель.

person Hauke Ingmar Schmidt    schedule 07.01.2014
comment
В многопроектном проекте родитель плагина должен быть родителем основного pom верхнего уровня, верно? Что делать, если я хочу добавить это поведение к одному дочернему (модулю) основного pom, а не ко всем модулям? У него уже есть родитель (pom верхнего уровня)... - person Parobay; 07.01.2014
comment
Да, в этом случае только верхний уровень pom может иметь внешнего родителя, модули наследуют через него, но вы не можете таким образом придавать модулям индивидуальное поведение. Этот метод работает только с проектами. Иногда это намек на то, что модуль может быть проектом (но не всегда, к сожалению). - person Hauke Ingmar Schmidt; 07.01.2014

Объявите этот pom.xml как тип pom:

<type>pom</type>

и объявите его родительским в каждом «дочернем» pom.xml, которому нужны настроенные плагины: http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance

person Boris Pavlović    schedule 07.01.2014