Maven资源插件冲突

时间:2013-11-12 14:29:55

标签: maven resources hierarchy conflict pom.xml

我有一个复杂的pom层次结构。其中一些具有资源插件配置,可将资源复制到目标工件。 我面临的问题是,当我将新资源配置添加到低级别pom时,其父poms上的现有资源插件配置将停止工作。 我真的不确定我想要实现的目标是否可行,因为我找不到任何关于它的文档。如果有可能,我不知道是否有任何限制..

我希望你们中的一些人可以给我一个暗示......

提前致谢。

2 个答案:

答案 0 :(得分:0)

从pom参考

中检查
  

您可以控制子POM如何从父POM继承配置   通过向配置元素的子元素添加属性。该   属性是combine.children和combine.self。使用这些属性   在一个子POM中控制Maven如何结合插件配置   在子项中具有显式配置的父项。

     

以下是包含两者插图的子配置   属性:

<configuration>   
   <items combine.children="append">
    <!-- combine.children="merge" is the default -->
    <item>child-1</item>   
  </items>   
  <properties combine.self="override">
<!-- combine.self="merge" is the default -->
  <childKey>child</childKey>   
  </properties> 
 </configuration>

或者如果您想要更详细的解释,请阅读this post

基本上,您需要合并maven-resource-plugin的父配置和子配置

答案 1 :(得分:0)

Maven文档不清楚哪些POM元素合并而哪些不合并,所以不久前我创建了一些测试POM并且稍微玩了一下。在我使用Maven 3.0.x进行的测试中,子POM中的任何resource(或testResource)元素都会完全覆盖父级提供的任何内容,因此元素不会合并。我发现如果需要在子代中添加资源配置元素,我必须复制所有父资源配置。

@Hilikus'的答案是为插件配置执行此操作的正确方法,因此如果需要更改maven-resource-plugin配置,请按照这些说明进行操作。