2011-04-20 125 views
1

我在Eclipse中有兩個Maven項目,都有自己的POM。Maven構建一個WAR文件,但首先構建一個JAR文件

項目A創建一個JAR文件。

項目B創建一個WAR文件。

當我運行鍼對項目B中的「包」命令,我想它也包一個項目,然後將所得的JAR文件複製到任意位置,在B項目

我試圖(和成功)在由Maven的戰爭插件使用webResources值,像這樣的副本:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.0.2</version> 
    <configuration> 
    <webResources> 
     <resource> 
     <directory>../ProjectA/target</directory> 
     <targetPath>.</targetPath> 
     <includes> 
      <include>ProjectA*.jar</include> 
     </includes> 
     <excludes> 
      <exclude>*shaded*.jar</exclude> 
     </excludes> 
     </resource> 
    </webResources> 

但我怎麼能得到項目B中的POM做項目A的構建?

我嘗試過的另一種方法是讓項目A成爲項目B的依賴項,以便將其導入到WAR的WEB-INF/lib目錄中,然後將它移動到其他位置。但是這似乎有點混亂。

任何幫助,非常感謝。

回答

6

爲此,您應該創建一個這樣的結構的多模塊版本。

root 
    +-- pom.xml 
    +-- ProjectA 
      +-- pom.xml 
    +-- ProjectB 
      +-- pom.xml 

有了像上面這樣的結構,您可以處理您的問題非常優雅。此外,請閱讀multi-module builds等。 有一件事是使用更新版本的maven-war-plugin,導致當前版本是2.1.1而不是2.0.X. OK。

+0

OK。你是否建議新的pom.xml存在於Eclipse項目B中?所以項目B有兩個poms,一個叫做項目A,然後是它的子目錄POM? – Phil 2011-04-20 15:58:34

+0

不可以。您創建文件夾讓它命名爲「父」,並將該結構放入此文件夾中。該項目將被導入到Eclipse中,而不是分離的項目。你是否使用Eclipse,如果是,請檢查m2eclipse插件。 (編輯答案)。 – khmarbaise 2011-04-20 16:06:42

+0

我認爲你的方法是正確的,但我需要進一步研究多模塊。感謝您的建議。 – Phil 2011-04-21 10:37:04

相關問題