我正在尝试减少我们的 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/