Maven 學習筆記一
Maven是一個專案管理工具,包含專案物件模型、標準集合、專案生命週期、依賴管理系統
1、POM
Project Object Model,在MAVEN1中叫做project.xml,到maven2後改為pom.xml。該檔案用於管理:原始碼、配置檔案、開發者的資訊和角色、問題追蹤系統、組織資訊、專案授權、專案的url、專案的依賴關係等等。一個maven專案可以沒有任何原始碼,但必須包含pom檔案。
packaging : 打包的格式,可以為:pom , jar , maven-plugin , ejb , war , ear , rar , par
2、groupId和artifactId
groupid和artifactId被統稱為“座標”是為了保證專案唯一性而提出的,如果你要把你專案弄到maven本地倉庫去,你想要找到你的專案就必須根據這兩個id去查詢。
groupId一般分為多個段,這裡我只說兩段,第一段為域,第二段為公司名稱。域又分為org、com、cn等等許多,其中org為非營利組織,com為商業組織。舉個apache公司的tomcat專案例子:這個專案的groupId是org.apache,它的域是org(因為tomcat是非營利專案),公司名稱是apache,artigactId是tomcat。
比如我建立一個專案,我一般會將groupId設定為cn.jk,cn表示域為中國,jk是我個人姓名縮寫,artifactId設定為testProj,表示你這個專案的名稱是testProj,依照這個設定,你的包結構最好是cn.jk.testProj打頭的,如果有個StudentDao,它的全路徑就是cn.jk.testProj.dao.StudentDao
3、管理依賴
在 pom 中指明 dependency management 元素的方式 maven 結合專案繼承來管理依賴。在多模組應用中,可能多個子專案會有共同的依賴。此時為了正確執行,必須讓所有的子專案使用依賴項的同一版本。必須確保應用的各個專案的依賴項和版本一致,才能保證測試的和釋出的是相同的成果。因此,應在頂層的 pom 中定義共同的依賴關係。
4、profile簡介
profile可以讓我們定義一系列的配置資訊,然後指定其啟用條件。
這樣我們就可以定義多個profile,然後每個profile對應不同的啟用條件和配置資訊,從而達到不同環境使用不同配置資訊的效果。
比如說,我們可以通過profile定義在jdk1.5以上使用一套配置資訊,在jdk1.5以下使用另外一套配置資訊;或者有時候我們可以通過作業系統的不同來使用不同的配置資訊,比如windows下是一套資訊,linux下又是另外一套資訊,等等。具體的啟用條件有哪些我在後文會講到。
5、profile的定義位置
對於使用Maven3,我們可以有多個地方定義profile。定義的地方不同,它的作用範圍也不同。
(1) 針對於特定專案的profile配置我們可以定義在該專案的pom.xml中。
(2) 針對於特定使用者的profile配置,我們可以在使用者的settings.xml檔案中定義profile。該檔案在使用者家目錄下的“.m2”目錄下。
(3) 全域性的profile配置。全域性的profile是定義在Maven安裝目錄下的“conf/settings.xml”檔案中的。
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- Javaxuex學習筆記---MavenJava筆記Maven
- Git和Maven的學習筆記GitMaven筆記
- Maven學習筆跡Maven
- 學習筆記(一)筆記
- kitten 學習教程(一) 學習筆記筆記
- Angular 學習筆記(一)Angular筆記
- React 學習筆記【一】React筆記
- vue學習筆記一Vue筆記
- Canvas學習筆記(一)Canvas筆記
- Jquery學習筆記(一)jQuery筆記
- goLang學習筆記(一)Golang筆記
- Android學習筆記一Android筆記
- css學習筆記(一)CSS筆記
- SCSS學習筆記(一)CSS筆記
- 深度學習 筆記一深度學習筆記
- ANFIS學習筆記(一)筆記
- Selenium 學習筆記 (一)筆記
- Kettle學習筆記(一)筆記
- Spring學習筆記(一)Spring筆記
- Matlab學習筆記(一)Matlab筆記
- opencv學習筆記(一)OpenCV筆記
- LaTeX學習筆記:一筆記
- GOLang 學習筆記(一)Golang筆記
- Python 學習筆記(一)Python筆記
- TS學習筆記(一)筆記
- unity學習筆記(一)Unity筆記
- oracle學習筆記《一》Oracle筆記
- Cesium學習筆記(一)筆記
- SpringMVC學習筆記(一)SpringMVC筆記
- kafka學習筆記(一)Kafka筆記
- Maven 筆記Maven筆記
- 高等數學學習筆記(一)筆記
- 深度學習 DEEP LEARNING 學習筆記(一)深度學習筆記
- MySQL學習筆記之一MySql筆記
- 拉丁語學習筆記 一筆記
- Apache ShenYu 學習筆記一Apache筆記
- github--學習筆記(一)Github筆記
- c#學習筆記(一)C#筆記
- react native學習筆記(一)React Native筆記