maven2: как разделить конфигурацию плагина между родителями и детьми pom? - PullRequest
14 голосов
/ 10 ноября 2010

Я пытаюсь уменьшить количество копий / вставок в наших файлах maven pom.

У нас есть один главный мастер и множество дочерних проектов, наследуемых от основного.

Я хочу поделиться сложным определением плагина, похожим на:

<plugins>
    ...
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <configuration>
            <!-- many xml lines here --> 
        </configuration>

        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>assemble</goal>
                    <goal>generate-daemons</goal>
                    <goal>create-repository</goal>
                </goals>
            </execution>
        </executions>

        <dependencies>
            <dependency>
                <groupId>org.codehaus.mojo.appassembler</groupId>
                <artifactId>appassembler-booter</artifactId>
                <version>1.0</version>
            </dependency>
        </dependencies>
    </plugin>
    ...
</plugins>

Когда это определение плагина находится в помете проекта, упаковка сделана хорошо.
Когда определение перемещается в родительский pom (в или в), упаковка даже не запускается.

Можно ли поделиться конфигурацией плагина? Как?

- Редактировать после первых ответов ---
Я пробовал следующее:
- поместите мою конфигурацию подключаемого модуля XL в элемент моего родительского pom
- добавить эти строки в мой проект pom в элементе:

<plugins>
...
   <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>appassembler-maven-plugin</artifactId>
   </plugin>
...
</plugins>

но это не работает ... Что может быть не так с этим?

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

Большое спасибо.

Ответы [ 2 ]

18 голосов
/ 10 ноября 2010

Вы можете заключить плагины родителя в тег <pluginManagement>.

   <build> 
       <pluginManagement>
           <plugins>
               <plugin> ... </plugin>
           </plugins>
       </pluginManagement>
   </build>

Затем дочерние плагины наследуют конфигурации, когда объявляют плагин в теге сборки.

2 голосов
/ 10 ноября 2010

Вы пытались использовать функцию управления плагинами в Maven?Это позволит вам передать эту информацию о конфигурации в дочерние файлы pom.xml из родительского pom.xml:

   <build> 
       <pluginManagement>
           <plugins>
               <plugin>your_plugin</plugin>
           </plugins>
       </pluginManagement>
   </build>

Теперь не все плагины сделаны так же хорошо, как плагины из org.apacheгруппа .maven.plugins.Может потребоваться переместить раздел конфигурации между элементами выполнения.

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