1. 程式人生 > >Maven POM檔案、多模組以及依賴關係

Maven POM檔案、多模組以及依賴關係

一、POM.XML

1、ProjectObject Model:專案物件模型

2、基本項:

  • project:pom.xml的頂級元素。
  • groupId:指出建立這個工程的組織或團隊的唯一標識。
  • plugins:外掛。
  • artifactId:基本名稱。
  • packaging:型別(如JAR、WAR、EAR等等),預設是JAR,所有帶有子模組的專案的packaging

    都為pom。

  • version:版本號。
  • modelVersion:指出POM使用哪個版本的物件模型。

二、多模組

1、如何建立

2、為什麼要分多模組

    軟體公司通常的一種做法就是將多個專案構建到主要產品中。維護依賴關係鏈和一次性地構建整個產品足以成為一個挑戰,但是如果使用Maven的話,事情將變得簡單。如果您建立了一個指向其它子模組的 pom.xml父檔案,Maven將為您處理整個構建過程。它將分析每個子模組的pom.xml檔案,並且按照這些子模組的相互依賴順序來構建專案。如果每個專案明確地指明它們的依賴項,那麼子模組在父檔案中的放置順序是不造成任何影響的。但是考慮到其他的開發者,最好保證子模組在pom.xml父檔案中 的放置順序和您期望的子專案被構建的順序一樣。

3、依賴另一個專案的子模組

    A專案下有2個子模組A1,A2;B專案下有3個子模組B1,B2,B3;

    A1依賴B1和A2; A2依賴B2,B3;

    則,需要先執行B專案,成功之後再執行A專案。

三、依賴關係

1、簡介

    參看:管理依賴

2、scope引數

指定依賴項在何種階段是所需的。

<dependency>
    <groupId>aa</groupId>
    <artifactId>aa</artifactId>
    <version>1.5.1</version>
    <scope>compile</scope>
</dependency>

——》引數值:

  • compile:預設值。表示是所有任務所需的資源,會隨專案一起釋出。
  • test:用於編譯和執行測試程式碼時所需的資源,不會隨專案釋出。
  • runtime:執行時所需的資源,如JDBC驅動。
  • provided:類似compile,JDK部分或應用伺服器的classpath所需的資源,期望JDK、容器

    或使用者會提供這個依賴,如servlet.jar。

  • system:類似provided,必須指定systemPath,需要顯示提供依賴的jar,

    maven不會在Repository中查詢。