1. 程式人生 > >Maven的pom.xml檔案結構詳解

Maven的pom.xml檔案結構詳解

Maven的pom.xml檔案簡稱POM (Project Object Model),是Maven專案的配置和管理核心。

pom.xml檔案包含大量配置資訊,這些資訊大致可以分為4類。

1.POM的模型版本

<modelVersion>4.0.0</modelVersion>
說明:在Maven2和Maven3中,只支援4.0.0版本。

2.基本配置

  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>...</packaging>
  <dependencies>...</dependencies>
  <parent>...</parent>
  <dependencyManagement>...</dependencyManagement>
  <modules>...</modules>
  <properties>...</properties>
說明:
  • groupId,構件所屬的組織ID
  • artifactId,構件的ID
  • version,構件的當前版本
其他配置引數將在後續文章中詳述。

3.Build配置

  <build>...</build>
  <reporting>...</reporting>
具體配置引數將在後續文章中詳述。


4.環境配置

  <issueManagement>...</issueManagement>
  <ciManagement>...</ciManagement>
  <mailingLists>...</mailingLists>
  <distributionManagement>...</distributionManagement>
  <scm>...</scm>
  <prerequisites>...</prerequisites>
  <repositories>...</repositories>
  <pluginRepositories>...</pluginRepositories>
  <profiles>...</profiles>
說明:
  • issueManagement,給出defect tracking system及其訪問URL
    • system
    • url
  • ciManagement,給出Continuous Integration Management、其URL和notifier
    • system
    • url
    • notifiers,整合過程中發生事件,以某種方式(如mail)通知開發人員
  • scm,software configuration management
    • connection,使用者使用的URI,能夠只讀地訪問版本控制系統
    • developerConnection,開發人員使用URI,能夠讀寫地訪問版本控制系統
    • tag,專案當前的tag
    • url,可通過Web瀏覽器訪問的公共網址
  • distributionManagement,構件的釋出管理,詳情見後續文章
  • prerequisites,POM執行的前提條件,目前只支援對Maven版本的要求
    • maven
  • mailingLists,開發人員或使用者的郵件列表
    • mailingList
      • name
      • subscribe,訂閱地址
      • unsubscribe,取消訂閱地址
      • post,POST郵件的目的地址
      • archive,打包的郵件列表歷史記錄
      • otherArchives,映象打包的郵件列表歷史記錄
其他引數將在後續文章中詳述。

5.其他資訊

  <name>...</name>
  <description>...</description>
  <url>...</url>
  <inceptionYear>...</inceptionYear>
  <licenses>...</licenses>
  <organization>...</organization>
  <developers>...</developers>
  <contributors>...</contributors>
說明:
  • name,專案的名稱代號
  • description,專案的說明
  • url,專案的官網URL
  • inceptionYear,專案的開發年份
  • licenses,專案使用的License。其中可以包含多個license,license具體又包含如下子屬性
    • name,license的名稱
    • url,license可訪問的URL地址
    • distribution,license釋出的方式。repo表示可以直接從Maven庫下載,manual表示必須手工安裝
    • comments,對license的說明
  • organization,包含組織的name,組織的官網url
  • developers,其中的developer包含id, name, email, url, organization, organizationUrl, roles, timezone, properties屬性
    • properties是可以自定義的各種必要屬性
  • contributors,其中的contributor包含與developer基本相同的屬性,除了沒有id屬性之外