天天看點

在Eclipse中建立Maven多子產品工程的例子[轉載]

如果,你需要建立多個項目,項目之間即獨立又有關系,那麼建立一個Maven多子產品項目是個非常好的選擇,也非常cool!怎麼在Eclipse裡面建立多子產品工程,以及需要注意哪些地方,我在這裡做個簡單的介紹。

一、準備

若想在Eclipse裡面做這些的話,那麼在做這一切前,請确認你是否已經在eclipse裡面安裝了maven插件。如果沒有裝插件,那隻能通過指令行去做了。

好,現在假設已經在Eclipse裡面裝了maven插件,那麼我們一起用Eclipse來建立Maven多子產品項目吧!

二、先建立父項目

  1. 在Eclipse裡面New -> 

    Maven Project

  2. 在彈出界面中選擇“Create a simple project”
  3. 設定工程的參數,見下圖
    在Eclipse中建立Maven多子產品工程的例子[轉載]
    • Group Id: com.example
    • Artifact Id: multi-modules-demo
    • Packaging: pom
    • Name: Multi Modules Demo
  4. 點選完成

這樣,我們就按正常模版建立了一個Maven工程。我們還需要對這個工程進行修改。

因為,這是一個父項目,不需要有什麼源碼,那麼,我們在Eclipse中将這個工程下的不用的目錄都删除,僅留下

pom.xml

檔案就行了。

三、建立子項目

  1. 選中剛建的父項目,在彈出菜單中點選 New -> 

    Maven Module

    ;
  2. 如圖配置
    在Eclipse中建立Maven多子產品工程的例子[轉載]
  3. 使用預設的Archetype(預設:GroupId:org.apache.maven.archetypes,Artifact Id:maven-archetype-quickstart)
  4. 完成工程配置,見下圖
    在Eclipse中建立Maven多子產品工程的例子[轉載]
  5. 點選完成

這樣一個子項目就建立完成了,在檔案系統中,子項目會建在父項目的目錄中。在父目錄中運作

mvn test

等指令,所有的子項目都會按順序執行。

細心一點的人,可能會發現,通過這個步驟建立子項目的同時,會修改父項目的

pom.xml

,增加了類似下面的資訊:

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

這個資訊,就是标記有哪些子子產品。

重複建立子項目的步驟,可以建立多個子項目。

四、優化配置

雖然上面的步驟,可以完成多子產品的建立,但是建立出來的多子產品,在一個程式員的眼裡,還是挺别扭的,怎麼回事呢?對,存在重複。那讓我們重構吧。

按上面步驟建立的子項目,在

pom.xml

中有個

parent

節點,是以,他可以繼承父項目的相關資訊。沒錯,父子項目中存在繼承關系。

在子項目的

pom.xml

中,子項目的

groupId

version

一般和父項目相同,那麼可以把子項目的這兩個參數删除,這樣會自動繼承父項目的取值。

同樣,如果其他的一些屬性,所有子項目都是一樣的,那麼可以上移到父項目中設定,子項目中無需重複設定。比如:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

可以僅在父項目中設定一次。

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

Manen提供

dependencyManagement

pluginManagement

兩個标簽。使用這兩個标簽,可以在父項目中統一管理依賴和插件的配置參數,比如版本号啥的。而在子項目中,僅需列出需要使用的依賴和插件的

groupId

artifactId

就可以了,其他資訊會自動從父項目管理的資訊裡面擷取。

看例子,父項目中:

<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>
           

四、指令行建立

上面就是在Eclipse裡面建立多子產品的步驟,和一些優化配置。

其中,具體的步驟可以根據實際情況進行适當的修改,比如選擇

Archetype

時,可以根據需要,選擇适當的

Archetype

上述步驟中的一些環節,也可以先通過指令行來生成雛形,然後再修改

pom.xml

來實作。

相關指令為:

mvn archetype:generate -DarchetypeCatalog=internal -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart
           

工程建立後需要修改

pom.xml

.修改方式,可以參考上面說到的内容。

原文位址:在Eclipse中建立Maven多子產品工程的例子[20150428更新], 感謝原作者分享。

繼續閱讀