如何将我的资源节与超级POM的资源节合并?

时间:2017-02-10 21:38:08

标签: maven

(我和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)。

我遗失了哪些明显的东西?

1 个答案:

答案 0 :(得分:1)

combine.childrencombine.self等神奇属性仅适用于插件的配置; pom本身被转换为一组pojos,但插件配置是一个XML-DOM。使用xpp3功能,我们可以定义合并策略。 是的,AFAIK资源总是被覆盖,永远不会扩展。资源没有唯一标识符,因此无法检测应合并,覆盖或扩展哪些资源块。