j2ee項目自動化構建工具_maven(一)

1. 目的

java項目管理工具,個人經歷的技術發展三個階段。ant+ivy(ant構建,ivy管理依賴)、maven、gradle。目前項目中一直在使用第一種技術來實現,作爲技術人員要善於學習新技術,技術沒有好壞,只有適合最佳。maven目前應該是javaEE開發中比重較大,gradle是後起之秀。這篇博客主要是自己學習maven的一些記錄,爲以後項目使用做準備。寫這篇博客的目的,一個是爲了整理自己學習思路,二則希望能夠爲其他人學習使用maven提供幫助,減少學習時間。

學習任何一門技術都是有原因的,個人還是比較帶着問題去學習。然後通過學習對每個問題進行回答,這樣也就對此技術達到學習目的,只有真正理解,纔可以在我們以後的項目中大膽放心的使用。

問題列表:

(1). maven是什麼?

(2). 爲什麼要使用maven,能幫我們解決什麼問題?

(3). maven的優缺點?

(4). maven的安裝、配置?

(5). maven中有哪些技術點?

(6). maven如何在項目中使用?

(7). 技術進階,maven如何實現?

(8). 參考資料


2. 回答問題

針對第1節中提出的問題,邊學習邊分別進行解答。

2.1 maven是什麼?

根據maven的官網提供的maven介紹,大概意思如下。
Maven,在Yiddish word意思是知識的積累,最初開始在Jakarta Turbine項目中使用,企圖簡化項目的構建過程。
當時有多個項目,每一個都有自己的Ant build文件都略有不同,JARS放入不同CVS中。
我們希望以一種標準的方式來構建項目,一個明確的定義。該項目包括,一個簡單的方法來發布項目信息
和一種方式來共享多個項目的JARS。
此工具可以用於構建和管理任何基於Java的項目。
我們希望maven可以使Java開發人員的每一天的工作更加簡單,與基於Java的任何項目的理解有所幫助。

Maven是Java項目構建、依賴管理和項目信息管理工具。由於Maven是用Java開發的,跨平臺的項目
管理工具,因此Maven被更多的用於Java項目中。
項目構建:清理、編譯、運行、測試、生成文檔、打包和部署;
項目依賴:提供中央倉庫,能夠幫助我們自動下載項目依賴(jar、war等);
項目信息管理:管理項目描述、開發者列表、版本控制系統地址、許可證、缺陷管理系統地址等。


構建工具是將軟件項目構建相關的過程自動化的工具。構建一個軟件項目通常包含以下一個或多個過程:

1. 生成源碼(如果項目使用自動生成源碼);
2. 從源碼生成項目文檔;
3. 編譯源碼;
4. 將編譯後的代碼打包成JAR文件或者ZIP文件;
5. 將打包好的代碼安裝到服務器、倉庫或者其它的地方;
有些項目可能需要更多的過程才能完成構建,這些過程一般也可以整合到構建工具中,因此它們也可以實現自動化。

2.2 爲什麼要使用maven,能幫我們解決什麼問題?


1. 使用maven可以自動化構建項目,比手動構建過程中出錯的風險降到最低。而且,自動構建工具通常

要比手動執行同樣的構建過程要快。這樣快速、不容易出錯構建項目,建議使用maven。

2. maven可以解決依賴jar包的統一管理,幾乎所有的java應用都會引用第三方類庫,隨着依賴jar包的增加,
版本不一致、版本衝突、依賴臃腫等問題。maven可以通過座標準確定位每一個組件。
3. maven提供項目目錄結構,測試用例命名方式有一定的規則,便於多個項目之間的統一。


2.3 maven的優缺點?

優點:跨平臺、自動化構建過程(清理,編譯,測試,生成報告,打包,部署)、有很多已實現的插件(可以自定義插件)、

實現標準化構建過程(在maven之前每個項目都有一套構建方式;有了maven所有項目構建命令都是一致的;

有利於實現項目團隊一體化);maven管理依賴,而且有java開源軟件包的中央倉庫;


缺點:

maven相對於ant衍生產品還不夠全面和成熟;

maven過於複雜,但是maven是用來管理項目的,整個項目過程都可以管理(個人覺得還是有必要學習的,因爲目前沒有更好的替代品);
maven的學習文檔不夠清晰


2.4 maven的安裝、配置?

2.4.1 在windows上安裝
1. 確定jdk安裝
2. 下載maven 的zip包,解壓
3. 設置環境變量
新建環境變量M2_HOME,路徑如:C:\apache-maven-3.3.9;
找到系統變量path,在此變量的末尾添加%M2_HOME%\bin;
4. 驗證安裝
打開cmd命令框;輸入命令(mvn -v),若顯示maven的版本號,安裝成功。

2.4.2 在linux上安裝
暫略...

2.4.3 在Eclipse上安裝m2eclipse



2.5 maven中有哪些技術點?

j2ee項目自動化構建工具_maven_中央倉庫(二)
j2ee項目自動化構建工具_maven_項目依賴管理(三)
j2ee項目自動化構建工具_maven_生命週期管理(四)
j2ee項目自動化構建工具_maven_插件(五)
j2ee項目自動化構建工具_maven_聚合和繼承(六)
j2ee項目自動化構建工具_maven_Nexus(七)
j2ee項目自動化構建工具_maven_m2eclipse(八)
j2ee項目自動化構建工具_maven_項目構建(九)
j2ee項目自動化構建工具_maven_測試(十)
j2ee項目自動化構建工具_maven_版本管理(十一)
j2ee項目自動化構建工具_maven_Archetype(十二)
j2ee項目自動化構建工具_maven_POM元素介紹(十三)
j2ee項目自動化構建工具_maven_常用插件(十四)

見後面的連載章節


2.6 maven如何在項目中使用?

見後面的連載章節


2.7 技術進階,maven如何實現?

見後面的連載章節


2.8 參考資料

1. maven官網地址
http://maven.apache.org/what-is-maven.html

2. 下載地址
http://maven.apache.org/download.html


發佈了27 篇原創文章 · 獲贊 41 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章