Maven的pom.xml檔案結構詳解
阿新 • • 發佈:2019-01-02
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,映象打包的郵件列表歷史記錄
- mailingList
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是可以自定義的各種必要屬性
- properties是可以自定義的各種必要屬性
- contributors,其中的contributor包含與developer基本相同的屬性,除了沒有id屬性之外