maven系列-(一)maven入門
我們平時在開發中,經常會用到maven,有時候接觸到的引入jar包的功能,有時候接觸到的是編譯,打包的功能。那maven到底是幹啥的呢?
什麼是maven?
maven是一個跨平臺的專案管理工具,可以實現專案的構建、依賴管理、專案資訊管理等功能。
在專案構建方面,maven可以自動化構建過程,清理、編譯、測試、生成報告、打包、部署。
在依賴管理方面,maven引入了座標的概念,自動化解析任何一個java構件,引入依賴的jar包。
在專案資訊管理方面,maven可以幫助我們管理分散在專案各個角落的專案資訊,包括專案描述、開發者列表、版本控制系統地址、許可證、缺陷管理系統地址等。而且通過Maven自動生成的站點,我們還能輕鬆獲得專案文件、測試報告、靜態分析報告、原始碼版本日誌報告等非常具有價值的專案資訊。
為什麼需要maven?
在maven之前,管理專案很麻煩,而且專案不規範,結構不統一。如果要編譯、測試、打包,還需要手工一步步的操作。在引入專案依賴的時候,一般都是網上搜索依賴的jar包,然後下載下來,放到專案裡,比較麻煩,還經常有版本的問題。
除了maven,還有Make、Ant等工具,Make算是最早的構建工具了,由Makefile指令碼檔案驅動,語法不是很友好,而且Make和作業系統繫結,很難實現跨平臺。Ant(Another Neat Tool)“另一個整潔的工具”,可以看成是Java版本的Make,Ant是跨平臺的,使用xml定義構建指令碼,但是Ant沒有依賴管理,使用者需要手動管理依賴,或者藉助Ivy管理依賴。
Make和Ant都是過程式的,開發者顯示的指定每一個目標和需要執行的任務,針對每個專案,都需要重複這一個操作。Maven是宣告式的,專案構建各個過程都由外掛時間,開發者只需要宣告專案基本的元素,maven就可以自動執行完整的構建過程。
綜上所述,使用maven可以更好的管理專案,自動的完成專案構建、專案依賴等各方面的工作,效率較高。
新建一個maven專案
接下來,新建一個maven專案,開始我們的學習。
在idea上選擇新建一個專案,然後選擇maven:
然後點選next,進入下一步:
在這裡,有三個選項,GroupId,ArtifactId和Version。
GroupId定義了專案屬於哪個組,一般和專案所在的組織或公司存在關聯。
ArtifactId定義了專案在組中唯一的id,一般就是專案名。
Version定義了版本號。如果version說明是xxx-SNAPSHOT說明這是一個快照,該專案還處於開發中,是不穩定的版本。
我們這裡就寫GroupId是com.baidu.test,ArtifactId起名為maven-test。Version是自動生成的。寫好之後,點選next。
這裡會讓選擇project name,還選擇專案的位置。
填寫完成之後,點選Finish,maven專案就新建完了。
可以看到專案的結構:
每個maven專案都有個pom.xml,POM(Project Object Model,專案物件模型)是Maven的核心。
Maven對於專案目錄結構,測試用例命名方式都有既定的規則,約定優於配置。
從目錄結構中可以看到,在src下,有兩個目錄,一個main,一個test。這就是maven定義好的目錄結構,主程式碼寫在src/main/java目錄下,測試的程式碼寫在src/test/java目錄下。測試程式碼只在執行測試時會用到,不會被打包。
參考資料:
1.《maven實戰》 許曉斌 著