2011-11-29 71 views
0

我們的項目中有很多模塊,我們希望爲其中一些模塊創建測試jar。我嘗試添加的Maven Jar插件父POM的pluginmanagementMaven兒童測試罐

<plugins> 
    <pluginManagement> 
    <plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <executions> 
     <execution> 
      <goals> 
      <goal>test-jar</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</pluginManagement> 

但是,現在它是爲所有的模塊創建測試-JAR。

根據文檔:插件管理包含插件元素的方式非常相似,不同之處在於不是爲此特定項目構建配置插件信息,而是配置從此繼承的項目構建。但是,這隻能配置在子節點的插件元素中實際引用的插件。孩子們有權覆蓋pluginManagement定義。

它不應該爲我們沒有包括在內的模塊創建測試jar,但它不知道怎麼做。我的模塊沒有在其構建模塊中添加maven-jar-plugin。

要停止它創建測試-JAR的一切,我只能在模塊添加它,我感興趣的

是否有其他更好的解決方案來實現這一目標?

回答

1

通常情況下,你的描述應該是不可能的。如果我不得不猜測,我會說,因爲你的包裝類型是jar maven-jar-plugin的配置被插入到你的有效pom中。然後,由於配置在那裏,它也使用插件管理部分的配置。運行mvn help:effective-pom可能會提供一些洞察這是否是真實的。

我還會確保層次結構中沒有父級包含maven-jar-pom的任何具體配置,這些配置將由子級繼承。如果孩子繼承了具體的部分,我認爲這也會觸發它包含插件管理配置。