2013-12-16 125 views
1

我使用的是用於Eclipse的m2e Maven插件。我有5個eclipse項目。一個Web應用程序項目,然後4個項目作爲我的Web應用程序的罐子依賴項。Maven生成jar依賴項然後戰

我想知道在使用戰爭項目中的「mvn clean install」將WAR包括到WAR之前,我該如何打包它們。

這裏是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>dispatcher</groupId> 
<artifactId>dispatcher</artifactId> 
<version>4.0</version> 
<packaging>war</packaging> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <warSourceDirectory>WebContent</warSourceDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>referentiel</groupId> 
     <artifactId>referentiel</artifactId> 
     <version>4.7</version> 
    </dependency> 
    <dependency> 
     <groupId>mailTemplates</groupId> 
     <artifactId>mailTemplates</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>qualityTool</groupId> 
     <artifactId>qualityTool</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>tools</groupId> 
     <artifactId>tools</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    ... 
    .. 
    . 
</dependencies> 
</project> 

預先感謝您。

+0

請看我的文章瞭解更多詳情! –

回答

2

@Jigar喬希的答案是:好,但我需要一個結構視圖,可以幫助你快速理解我們的意思。

I.創建一個頂級的maven模塊(戰爭和罐子的父親) 你已經是你需要的5個模塊了。現在創建一個新的Maven項目作爲父項,它必須只包含一個pom.xml文件。

父項目的pom

<project...>    
      <groupId>groupId</groupId> 
      <artifactId>parent-pom</artifactId> 
      <version>1.0-SNAPSHOT</version> 
      <packaging>pom</packaging> 
     <name>Define parent pom </name> 
     <!-- modul --> 
    <project> 

II。首先將你的jar項目作爲模塊,然後放在戰爭項目的最後。如果你在jar項目中有另一個依賴關係,你也可以嘗試對它們進行排序。

父項目的pom

<modules> 
     <module>referentiel</module> <!-- jar --> 
     <module>mailTemplates</module> <!-- jar --> 
     <module>qualityTool</module> <!-- jar --> 
     <module>tools</module> <!-- jar --> 
     <module>dispatcher</module> <!-- war--> 
    </modules> 

III。在所有其他項目中將父參照放入poms中

<parent> 
     <groupId>groupId</groupId> 
     <artifactId>parent-pom</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    <parent> 

IV。現在你可以進入新創建的父項目,並從那裏運行

mvn clean install 
+0

我有相同的結構,但仍然有 '[[ ERROR]無法解析的父POM:找不到調度程序:http://repo.maven.apache.org/maven2中的dispatcherParent:pom:4.7緩存在本地存儲庫中,直到中央更新間隔後纔會重新解析分辨率已經過去或者更新被強制並且'parent.relativePath'指向錯誤的本地POM @第7行,第10列 - > [Help 2]' – Emowpy

+0

../ Di spatcher/pom.xml解決了它。謝謝。 – Emowpy

2

可以創建一個頂級行家模塊(戰爭和罐子的母公司)和執行mvn clean install

---pom.xml 
    | 
    |dispatcher---pom.xml (war) 
    |qualityTool----pom.xml (jar) 
    |mailTemplates----pom.xml (jar) 
    |referentiel----pom.xml (jar) 
    |tools----pom.xml (jar) 

或使用--also-make命令行選項,以使依賴以及

+0

也許你的意思不是* parent *,而是* reactor * module/pom?父共享公共插件/依賴項,而reactor只是觸發''。 –

+0

是創建一個模塊作爲戰爭和瓶子的父親和建設它,如果OP要定製構建他/他可以去定製構建配置文件綁定在父模塊 –

+0

我嘗試父/模塊結構作爲Jigar和Festus建議,但我'mvn clean install'時出現此錯誤: [INFO]正在掃描項目... [錯誤]構建無法讀取5個項目 - > [Help 1] [ERROR] – Emowpy