(我和Maven一起工作了很多年。我有点无法相信我现在才遇到这个问题。)
超级POM定义了它的<resources>
节:
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
我的<resources>
中有一个pom.xml
节,如下所示:
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>LICENSE</include>
</includes>
<targetPath>
</resource>
</resource>
当我运行mvn help:effective-pom
时,我可以看到Maven已经取消了超级POM(有用)<resources>
节,并将其替换为我自己的节目。
相反,我想将我的<resources>
节的内容添加到超级POM提供的内容中。
我的combine.children
元素上放置combine.self
或<resources>
属性的任何组合都不会导致这种情况发生(加上我不知道这些名称应该表示什么,尽管我和#39;已阅读an article on the subject)。
我遗失了哪些明显的东西?
答案 0 :(得分:1)
combine.children
和combine.self
等神奇属性仅适用于插件的配置; pom本身被转换为一组pojos,但插件配置是一个XML-DOM。使用xpp3功能,我们可以定义合并策略。
是的,AFAIK资源总是被覆盖,永远不会扩展。资源没有唯一标识符,因此无法检测应合并,覆盖或扩展哪些资源块。