maven-2 - Maven2 : how to share a plugin configuration between parent and children pom?

标签 maven-2 plugins

我正在尝试减少我们的 maven pom 文件中的复制/粘贴。

我们有一个主 pom 和许多子项目从主继承的 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中时,打包就做好了。
当定义移动到父 pom(in 或 in)时,甚至没有开始打包。

是否可以共享插件配置?如何 ?

-- 在第一个回答后编辑---
我尝试了以下方法:
- 将我的 XL 打包插件配置放在我父 pom 的元素中
- 在元素中的我的项目 pom 中添加以下行:
<plugins>
...
   <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>appassembler-maven-plugin</artifactId>
   </plugin>
...
</plugins>

但它不起作用......
这有什么问题?

——最后编辑——
我想我明白出了什么问题:
插件重用声明应该在配置文件构建中声明。
我在一个始终启用的插件中完成了这项工作,现在它工作正常。

非常感谢。

最佳答案

您可以将父插件的插件包装在 <pluginManagement> 中标签。

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

当子插件在其构建标签中声明插件时,它们将继承配置。

关于maven-2 - Maven2 : how to share a plugin configuration between parent and children pom?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4145794/

相关文章:

ant - maven antrun 插件

java - Maven:生成包含所有依赖项的可执行 jar 文件

java - 调用 exec :java plugin in maven? 时如何传递 systemProperties

maven-2 - maven-jar-plugin addClasspath 范围

ios - Flutter Audioplayers插件不播放声音,而是卡住了该应用程序

java - 果冻 + JavaScript

java - 扩展 dotCMS REST API

scala - Sbt 替代 "mvn install -DskipTests"

maven - 从Maven的命令行参数中跳过exec-maven-plugin

plugins - TinyMCE 4 插件中内联模式下的自定义模式屏幕