maven構建maven-project和maven-module

在Eclipse中建立Maven多模塊工程的例子

更多0
 

若是,你須要建立多個項目,項目之間即獨立又有關係,那麼建立一個Maven多模塊項目是個很是好的選擇,也很是cool!怎麼在Eclipse裏面建立多模塊工程,以及須要注意哪些地方,我在這裏作個簡單的介紹。程序員

1、準備

若想在Eclipse裏面作這些的話,那麼在作這一切前,請確認你是否已經在eclipse裏面安裝了maven插件。若是沒有裝插件,那隻能經過命令行去作了。apache

好,如今假設已經在Eclipse裏面裝了maven插件,那麼咱們一塊兒用Eclipse來建立Maven多模塊項目吧!api

2、先建立父項目

  1. 在Eclipse裏面New -> Maven Project
  2. 在彈出界面中不要選擇「Create a simple project」(這樣就可使用archetype來建立項目)
  3. 使用默認的Archetype(默認:GroupId:org.apache.maven.archetypes,Artifact Id:maven-archetype-quickstart)
  4. 設置工程的參數,見下圖
    Params Settings
  5. 點擊完成

這樣,咱們就按常規模版建立了一個Maven工程。咱們還須要對這個工程進行修改。eclipse

由於,這是一個父項目,不須要有什麼源碼,那麼,咱們在Eclipse中將這個工程下的不用的目錄都刪除,僅留下pom.xml文件就好了。刪除後的目錄結構,以下圖:maven

parentProj

工程裏面還有個Maven Dependencies,別管他,後面會讓他自動消失。優化

另外,還需把pom.xml中的<packaging>jar</packaging>修改成<packaging>pom</packaging>ui

這時,可能Eclipse中會顯示工程報錯,根據提示操做,選擇工程而後點擊彈出菜單 Maven -> Update Project,因而Ok了。spa

3、建立子項目

  1. 選中剛建的父項目,在彈出菜單中點擊 New -> Maven Module;
  2. 如圖配置
    child settings
  3. 使用默認的Archetype(默認:GroupId:org.apache.maven.archetypes,Artifact Id:maven-archetype-quickstart)
  4. 完成工程配置,見下圖
    Params Settings
  5. 點擊完成

這樣一個子項目就建立完成了,在文件系統中,子項目會建在父項目的目錄中。在父目錄中運行mvn test等命令,全部的子項目都會按順序執行。插件

細心一點的人,可能會發現,經過這個步驟建立子項目的同時,會修改父項目的pom.xml,增長了相似下面的信息:命令行

<modules> <module>module-children1-demo</module> </modules>

這個信息,就是標記有哪些子模塊。

重複建立子項目的步驟,能夠建立多個子項目。

4、優化配置

雖然上面的步驟,能夠完成多模塊的建立,可是建立出來的多模塊,在一個程序員的眼裏,仍是挺彆扭的,怎麼回事呢?對,存在重複。那讓咱們重構吧。

按上面步驟建立的子項目,在pom.xml中有個parent節點,因此,他能夠繼承父項目的相關信息。沒錯,父子項目中存在繼承關係。

在子項目的pom.xml中,子項目的groupIdversion通常和父項目相同,那麼能夠把子項目的這兩個參數刪除,這樣會自動繼承父項目的取值。

一樣,若是其餘的一些屬性,全部子項目都是同樣的,那麼能夠上移到父項目中設置,子項目中無需重複設置。好比:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>能夠僅在父項目中設置一次。

除了這種狀況之外,還有一種狀況,就是依賴和插件。依賴和插件的狀況是這樣,某一個依賴或插件可能會被大部分子項目所使用,可是也可能有些子項目不須要使用,這樣使用上述的方式,簡簡單單地進行繼承就不合適了。

Manen提供dependencyManagementpluginManagement兩個標籤。使用這兩個標籤,能夠在父項目中統一管理依賴和插件的配置參數,好比版本號啥的。而在子項目中,僅需列出須要使用的依賴和插件的groupIdartifactId就能夠了,其餘信息會自動從父項目管理的信息裏面獲取。

看例子,父項目中:

<dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> </dependencies> </dependencyManagement>

在子項目中:

<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies>

4、命令行建立

上面就是在Eclipse裏面建立多模塊的步驟,和一些優化配置。

其中,具體的步驟能夠根據實際狀況進行適當的修改,好比選擇Archetype時,能夠根據須要,選擇適當的Archetype

上述步驟中的一些環節,也能夠先經過命令行來生成雛形,而後再修改pom.xml來實現。

相關命令爲:

相關文章
相關標籤/搜索