modelVersion
Type:String
聲明瞭POM符合哪個版本的項目描述符
parent
Type:Parent
如果存在parent project,描述其的位置。來自parent project的值,如果本project沒有指明,將作爲本project的默認值。位置通過group ID、artifact ID和version確定。
gourpId
Type:String
項目全局唯一限定符。通常使用完全限定的包名來區分和它相似的項目。(如:org.apache.maven)
artifactId
Type:String
作爲artifact在由groupId命名的組中獨一無二的標識符。artifact是被project製造或使用的製品。Maven用於project而產生的artifact例子包括:JARs、source、binary distributi、WAR。
version
Type:String
當前project產生的artifact的版本號。
packaging
Type:String
project產生的artifact的類型,例如jar、war、ear、pom。Plugins可以創建它們自己的packaging,因此它們有自己的packaging類型,因此上面舉的例子並不包括所有的類型。
默認值:jar
name
Type:String
project的全稱
description
Type:String
project的詳細描述,Maven在需要描述project時會使用,例如在網頁上。該元素也可以指定使用CDATA,從而可以在描述中使用HTML標籤,而不允許純文本表示。如果你需要修改生成網頁的主頁,能夠通過調整這個文本段來定義自己的內容。
url
Type:String
項目主頁的URL。
默認值:parent value [+ path adjustment] + artifactId
inceptionYear
Type:String
project的初始兩份,由4個數字定義。該值用於生成版權聲明相關的信息。
organization
Type:Organization
該元素描述了項目所屬組織的多種屬性。這些屬性在創建文檔時被使用(如版權說明或鏈接)
licenses/license*
Type:List<License>
(Many)該元素描述了本項目的所有license。每個license通過一個license元素描述,通過額外其他的元素進一步描述。項目僅需列出其應用的license列表,不需要列出依賴包所使用的license。如果有多個license被列出,則假定用戶可以從中任意選擇而不是必需遵循所有的。
developers/developer*
Type:List<Developer>
(Many)描述了項目的提交者(committers)
contributors/contributor*
Type:List<Contributor>
(Many)描述了項目的貢獻者(contributors),不包括提交者(committers)。
mailingLists/mainlingList*
Type:List<MainlingList>
(Many)包含項目郵件列表信息
prerequisties
Type:Prerequisites
描述項目編譯環境的先決條件(prerequisites)
modules/module*
Type:List<String>
(Many)構建該項目的子模塊(有時也叫子項目)。每個module列出包含模塊的文件夾的相對路徑。爲了保持一致,默認的url從parent開始計算,建議將module名稱和artifact的id取名一樣。
scm
Type:Scm
描述了項目使用的SCM,例如CVS,Subversion等。
issueManagement
Type:IssueManagement
項目發行(issue)管理系統信息。
ciManagement
Type:CiManagement
項目持續集成信息
distributionManagement
Type:DistributionManagement
描述了項目發佈(distribution)信息,能夠部署站點(site)和artifacts的遠程服務器以及各自的repositories。
properties/key=value*
Type:Properties
(Many)Properties能在整個POM中用於替換,也可作爲資源的過濾器(filters)。格式爲<name>value</name>。
Type:DependencyManagement
項目的默認依賴信息從該元素中繼承。該元素中的依賴不會立即被解析,而是當有其它POM繼承該POM時,通過groupId和artifactId聲明一個該元素中描述的依賴時,version和其它值如果未定義,將會從該部分獲取來用。
dependencies/dependency*
Type:List<Dependency>(Many)該元素描述了和項目相關的所有依賴。這些依賴在項目編譯過程中構造了相關的classpath。它們能夠自動從該項目定義的repositories中下載。可參考the dependency mechanism(http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)來獲取更多信息。
repositories/repository*
Type:List<Repository>
(Many)用於發現依賴或其它的遠程repositories的列表
pluginRepositories/pluginRepository*
Type:List<Repository>
(Many)用於發現用於構建或報告的插件的遠程repositories列表。
build
Type:Build
用於編譯項目的必要信息
reports
Type:DOM
(Deprecated)目前已被Maven忽略
reporting
Type:Reporting
該元素包括report插件的定義,用於在Maven-generated site生成reports。這些reports在用戶自行mvn site時將會被自行。所有的報告都會包含在瀏覽頁的導航欄中。
profiles/profile*
List<Profile>
(Many)本地項目編譯時的profiles列表,如果被激活能夠修改編譯過程。