1. 程式人生 > >利用intellijidea建立maven多模組專案

利用intellijidea建立maven多模組專案

本文通過一個例子來介紹利用maven來構建一個多模組的jave專案。開發工具:intellij idea。

一、專案結構

multi-module-PRoject是主工程,裡面包含兩個模組(Module):

  1. web-app是應用層,用於介面展示,依賴於web-service參的服務。
  2. web-service層是服務層,用於給app層提供服務。

二、構建專案

2.1 Parent Project

新建一個空白標準maven project(不要選擇Create from archetype選項)

填寫專案座標

得到一個標準的maven專案,因為該專案是作為一個Parent project存在的,可以直接刪除src資料夾。

2.2 新增子模組Order

2.3 增加web-app模組(Module)

選擇從archetype建立(選擇webapp選項)

groupId和version繼承自Parent project,這裡只需要填寫artifactId即可。

2.4增加web-service模組

用同樣的方法建立web-service模組(不過該模組是一個空白maven標準專案,不要從archetype建立)

2.5 得最終專案結構

2.6 關鍵幾點

  1. Parent project和各個Module擁有獨立pom檔案,他們之間的關係後續會專門寫文章介紹。
  2. Parent project用於組織不同的Module,不實現邏輯
  3. Module整合Parent project的groupId和version,Module只需要指定自己的artifactId即可。

三、新增專案依賴

上面的操作是新增web-app對web-service模組的依賴,完成上述操作後web-Service中public的類已經在web-app模組中可見了。但是這個時候在app模組使用了service模組中的類,通過maven進行編譯(compile)的時候還是會報錯XX找不到(XX為service模組的類),要解決這個問題需要在app的pom中增加對service的依賴:

   <dependency>
            <groupId>com.cnblogs.kmpp</groupId>
            <artifactId>web-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

以上,專案依賴的新增已經完成

四、開始程式設計

4.1 web-service模組程式設計

在web-service模組中增加一個Service類(SimpleService.java)

4.2 web-app模組程式設計

 在web-app模組增加一個Servlet,並且呼叫web-service模組的SimpleService類的getServiceDescription方法。

注:maven的web怎麼配置:

  • 選擇Web(為此專案新增Web服務元件,這便是一個Web專案了)

  • 現在為Web設定資源目錄。雙擊Web Resource Directory

  • 選擇scr/main目錄

  • 在後面加上webapp。好了,點OK,Web的資源目錄便設定好了。

  • 現在設定Web的描述檔案的目錄

  • 設定在webapp目錄下

Facts: 表示當前專案的適配服務元件。可看到此專案已是一個Web專案了。

Aftifacts: 這個Aftifacts描述了當前專案釋出的資訊。現在進行新增,從Modeles中選擇。

說明:A: 現在Artifacts已有了釋出的專案了(idea中準確的說應是Modele) B:output root目錄描述了當前專案的編譯目錄及適配服務。

order-