Maven POM學習筆記之元素

爲描述符的根元素。下面爲所有可用的子元素。

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>。


dependencyManagement
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列表,如果被激活能夠修改編譯過程。











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章