我有一个复杂的 pom 层次结构。其中一些具有将资源复制到目标工件的资源插件配置。我面临的问题是,当我向低级 pom 添加新资源配置时,其父 pom 上的现有资源插件配置停止工作。我真的不确定我想要实现的目标是否可行,因为我找不到任何关于它的文档。如果可以的话,不知道有没有限制。。
我希望你们中的一些人能给我一个提示。
提前致谢。
Maven 文档对哪些 POM 元素合并哪些不合并不是很清楚,所以不久前我创建了一些测试 POM 并使用它们进行了一些操作。在我使用 Maven 3.0.x 进行的测试中,子 POM 中的任何resource
(或testResource
)元素会完全覆盖父级提供的任何内容,这些元素不会被合并。我发现如果我需要在子元素中添加资源配置元素,我必须复制所有父资源配置。
@Hilikus 的回答是插件配置的正确方法,所以如果maven-resource-plugin
是需要更改的配置,请遵循这些指示。
从 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>
或者如果您想要更详细的解释,请阅读这篇文章
基本上,你需要合并maven-resource-plugin的父子配置