2016-03-27 197 views
2

我正在使用maven和eclipse IDE開發Java項目。用依賴項目構建Maven

我有3個項目,即P1,P2和主項目

我對P1,P2,主項目個體POMS,我已經包括P1,P2作爲主項目和項目主要模塊是接受包裝如POM只有

如果我改變包裝戰,我得到以下錯誤

Project build error: 'packaging' with value 'war' is invalid. Aggregator projects require 'pom' as packaging.

我想建立一個戰爭由P1,P2和主項目的類文件在戰爭中產生的。

誰能給任何指針來達到同樣的

由於提前

回答

3

不能混合包裝類型(pomwar)。您需要引入第四POM:

<project> 
    <groupId>org.example</groupId> 
    <artifactId>modules</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <modules> 
    <module>P1</module> 
    <module>P2</module> 
    <module>Main</module> <!-- This contains your WAR --> 
    </modules> 
    ... 
</project> 

您的項目Main取決於P1P2。 Maven/Eclipse會爲你找出構建順序。如果您不想在Eclipse中導入module工件,您甚至不需要至少安裝一次POM。

如果你願意,你也可以在上面的POM中放置常用的配置,讓子模塊繼承它。

1

包裝POM用於模塊的聚集,他們共同的依賴(通過依賴管理部分)或插件(插件通過管理處)等

你的情況,你必須從移動源「主項目「,將POM包裝到另一個模塊,例如:P0。然後,您應該在此P0模塊上打包WAR。另外,P0模塊可以取決於P1P2模塊。

你可能有項目結構是這樣的:

  • Main Project - 包裝POM與模塊:P0P1P2
    • P0 - 包裝WAR與主項目的來源,依賴於:P1P2
    • P1 - 包裝JAR
    • P2 - 包裝JAR

當你與mvn package構建主項目,你將有一個WAR文件中/target目錄P0模塊。

相關問題