2017-02-10 48 views
0

(我一直在使用Maven多年我有點不敢相信,我現在才遇到過這個問題。)如何將我的資源節與超級POM的資源節合併?

超級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提供的內容。

任把我<resources>元素的combine.childrencombine.self屬性沒有組合導致這種情況發生(加上我不知道這些名字都應該註明,雖然我讀過an article on the subject)。

我錯過了什麼明顯的東西?

回答

1

combine.childrencombine.self這樣的神奇屬性只適用於插件的配置; pom本身被轉換爲一組pojos,但插件配置是一個XML-DOM。藉助xpp3功能,我們可以定義合併策略。 是的,AFAIK資源總是被覆蓋,永遠不會延長。資源沒有唯一的標識符,因此無法檢測應合併,覆蓋或擴展哪些資源塊。