qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          maven 使用入門編寫pom 文件

          我們利用ecilpse 創建1個簡單的maven項目 來看看他的pom文件

          就像Make的Makefile、Ant的build.xml一樣,Maven項目的核心是pom.xml。POM(Project Object Model,項目對象模型)定義了項目的基本信息,用于描述項目如何構建,聲明項目依賴,等等。現在先為Hello World項目編寫一個最簡單的pom.xml。

          首先創建一個名為helloworld的文件夾,打開該文件夾,新建一個名為pom.xml的文件,輸入其內容,如代碼清單3-1所示。

          代碼清單3-1 Hello World的POM

          1. <?xml version="1.0" encoding="UTF-8"?> 
          2. <project xmlns="http://maven.apache.org/POM/4.0.0" 
          3. xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" 
          4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
          5. http://maven.apache.org/mavenv4_0_0.xsd"> 
          6. <modelVersion>4.0.0</modelVersion> 
          7. <groupId>com.juvenxu.mvnbook</groupId> 
          8. <artifactId>helloworld</artifactId> 
          9. <version>1.0SNAPSHOT</version> 
          10. <name>Maven Hello World Project</name> 
          11. </project> 

          代碼的第一行是XML頭,指定了該xml文檔的版本和編碼方式。緊接著是project元素,project是所有pom.xml的根元素,它還聲明了一些POM相關的命名空間及xsd元素,雖然這些屬性不是必須的,但使用這些屬性能夠讓第三方工具(如IDE中的XML編輯器)幫助我們快速編輯POM。

          根元素下的第一個子元素modelVersion指定了當前POM模型的版本,對于Maven 2及Maven 3來說,它只能是4.0.0。

          這段代碼中最重要的是包含groupId、artifactId和version的三行。這三個元素定義了一個項目基本的坐標,在Maven的世界,任何的jar、pom或者war都是以基于這些基本的坐標進行區分的。

          groupId定義了項目屬于哪個組,這個組往往和項目所在的組織或公司存在關聯。譬如在googlecode上建立了一個名為myapp的項目,那么groupId就應該是com.googlecode.myapp,如果你的公司是mycom,有一個項目為myapp,那么groupId就應該是com.mycom.myapp。本書中所有的代碼都基于groupId com.juvenxu.mvnbook。

          artifactId定義了當前Maven項目在組中唯一的ID,我們為這個Hello World項目定義artifactId為helloworld,本書其他章節代碼會分配其他的artifactId。而在前面的groupId為com.googlecode.myapp的例子中,你可能會為不同的子項目(模塊)分配artifactId,如myapputil、myappdomain、myappweb等。

          顧名思義,version指定了Hello World項目當前的版本——1.0SNAPSHOT。SNAPSHOT意為快照,說明該項目還處于開發中,是不穩定的版本。隨著項目的發展,version會不斷更新,如升級為1.0、1.1SNAPSHOT、1.1、2.0等。6.5節會詳細介紹SNAPSHOT,第13章會介紹如何使用Maven管理項目版本的升級發布。

          最后一個name元素聲明了一個對于用戶更為友好的項目名稱,雖然這不是必須的,但還是推薦為每個POM聲明name,以方便信息交流。

          沒有任何實際的Java代碼,我們就能夠定義一個Maven項目的POM,這體現了Maven的一大優點,它能讓項目對象模型最大程度地與實際代碼相獨立,我們可以稱之為解耦,或者正交性。這在很大程度上避免了Java代碼和POM代碼的相互影響。比如當項目需要升級版本時,只需要修改POM,而不需要更改Java代碼;而在POM穩定之后,日常的Java代碼開發工作基本不涉及POM的修改。

          posted on 2014-03-05 11:48 順其自然EVO 閱讀(5026) 評論(1)  編輯  收藏 所屬分類: maven

          評論

          # re: maven 使用入門編寫pom 文件 2015-11-10 20:11 玩玩

          3333  回復  更多評論   

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 岳池县| 德格县| 宜章县| 湖口县| 丹东市| 昌吉市| 九江县| 克拉玛依市| 裕民县| 石首市| 东兰县| 恭城| 珲春市| 龙川县| 重庆市| 柯坪县| 繁昌县| 宜阳县| 井研县| 横山县| 棋牌| 通渭县| 天全县| 海阳市| 莱芜市| 故城县| 洛浦县| 井冈山市| 呼玛县| 华坪县| 阿鲁科尔沁旗| 武乡县| 柘城县| 广西| 镇江市| 齐河县| 东丽区| 阿拉善右旗| 蒲江县| 渝北区| 敖汉旗|