1. 程式人生 > >在Eclipse中建立Maven多模組工程的例子

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

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

一、準備

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

好,現在假設已經在Eclipse裡面裝了maven外掛,那麼我們一起用Eclipse來建立Maven多模組專案吧!

二、先建立父專案

  1. 在Eclipse裡面New -> MavenProject
  2. 在彈出介面中選擇“Create a simple project”
  3. 設定工程的引數,見下圖
    Params Settings

    • Group Id: com.example
    • Artifact Id: multi-modules-demo
    • Packaging: pom
    • Name: Multi Modules Demo
  4. 點選完成

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

因為,這是一個父專案,不需要有什麼原始碼,那麼,我們在Eclipse中將這個工程下的不用的目錄都刪除,僅留下pom.xml檔案就行了。

三、建立子專案

  1. 選中剛建的父專案,在彈出選單中點選 New -> MavenModule;
  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>

這個資訊,就是標記有哪些子模組。

重複建立子專案的步驟,可以建立多個子專案。

四、優化配置

雖然上面的步驟,可以完成多模組的建立,但是創建出來的多模組,在一個程式設計師的眼裡,還是挺彆扭的,怎麼回事呢?對,存在重複。那讓我們重構吧。

按上面步驟建立的子專案,在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>

四、命令列建立

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

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

上述步驟中的一些環節,也可以先通過命令列來生成雛形,然後再修改pom.xml來實現。

相關命令為:

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

工程建立後需要修改pom.xml.修改方式,可以參考上面說到的內容。

此轉載http://ju.outofmemory.cn/entry/75620文章