Maven項目管理工具概述(一)

Maven項目管理工具

一、Maven概述[瞭解]

1.問題引入

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IFD4AnUp-1593161829374)(../img-folder/Maven/1576483068494.png)]

l 目前存在的問題

運用我們目前學習的技術已經可以開發一個小型的項目了,但是在實際開發中,我們的項目規模要複雜的多,遇到的問題也更多!比如:

1、jar包的管理:多個項目依賴同一個jar包,要複製多次,jar升級時又得重新複製多次,jar之間還可能有多重依賴關係,容易管理混亂

2、項目的管理:項目規模越來越大,需要拆分成多個子模塊,模塊之間的相互依賴關係需要統一管理,並且項目生命週期中的編譯,打包,測試,運行等步驟都需要統一管理

l 如何解決?

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-13qTScZv-1593161829393)(../img-folder/Maven/1576483131060.png)]

開發一個工具對jar包和項目進行統一的管理,比如:

把jar包都編個座標,記錄並存放在一個地方(這個地方稱作爲倉庫),項目中要用哪個jar就根據座標來倉庫中找就行了;

對項目生命週期和模塊進行統一管理,能夠自動化的執行編譯,打包,測試,運行等操作。

而我們想到的這些解決方案,早就有大牛幫我們實現好了,那就是Maven!

總結:通俗的說:maven就是用來管理jar包+管理項目

注意:這些工具都是幫助/輔助我們工作的,我們最終的開發產出物都是代碼

2.初識Maven

l 官網

http://maven.apache.org/

l 百科介紹

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-sH1cePbc-1593161829395)(../img-folder/Maven/wps3.jpg)]

l 說人話

Maven是一個項目管理工具,可以對項目和jar包進行統一個管理,包括:項目的構建(執行項目的生命週期)、項目的生命週期(編譯、測試、打包、部署等)、項目的模塊依賴關係和jar包的依賴關係

l Jar包管理

l 自動化的項目構建

3.Maven的相關概念

(1)項目對象模型(POM)

Project Object Model:POM對象模型,其實就是一個xml文件,名字叫做pom.xml,每個Maven工程中都有一個pom.xml文件,定義工程(所依賴的jar包)、(本工程的座標、打包(jar/war)運行方式)。

Maven通過座標對項目工程所依賴的jar包統一規範管理

企業使用時,也叫做GAV座標

Maven的座標使用如下三個量在 Maven 的倉庫中唯一的確定一個jar。

[1] groupid:公司或組織的域名倒序+[當前項目名稱]

[2] artifactId:當前項目的模塊名稱

[3] version:當前模塊的版本

例如:要引入junit的測試jar,只需要在pom.xml配置文件中配置引入junit的座標即可

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

(2)生命週期

l 清理、編譯、測試、報告 、打包、部署、站點生成。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HfbPas1r-1593161829399)(../img-folder/Maven/wps4.png)]

①清理:刪除以前的編譯結果,爲重新編譯做好準備。

②編譯:將Java 源程序編譯爲字節碼文件。

③測試:針對項目中的關鍵點進行測試,確保項目在迭代開發過程中關鍵點的正確性。

④報告:在每一次測試後以標準的格式記錄和展示測試結果。

⑤打包:將一個包含諸多文件的工程封裝爲一個壓縮文件用於安裝或部署。Java 工程對應 jar 包,Web工程對應 war 包。

⑥安裝:在 Maven 環境下特指將打包的結果——jar 包安裝到本地倉庫中或把 war包安裝到web容器中。

⑦部署:將打包的結果部署到遠程倉庫或將war包部署到服務器上運行。

(3)Maven項目標準目錄結構

Maven是約定思想的體現,約定>配置>編程,maven之前有一個ant工具(告訴它你的源代碼在哪個路徑下,然後編譯輸出到哪個路徑)

l Maven工程有自己標準的目錄結構。

而 Maven 正是因爲指定了特定目錄保存文件才能夠對我們的 Java 工程進行自動化構建(就是自動執行上面的生命週期)。

l 標準目錄結構示例

Project

|-src

| |-main

| | |-java —— 存放項目的.java文件

| | |-resources ——存放項目資源文件,如spring, hibernate配置文件

​ |-webapp —— webapp目錄是web工程的主目錄

​ |-WEB-INF

​ |-web.xml

| |-test

| |-java —— 存放所有測試.java文件,如JUnit測試類

| |-resources —— 測試資源文件

|-target ——目標文件輸出位置例如.class、.jar、.war文件

|-pom.xml ——maven項目核心配置文件

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BollRFTc-1593161829402)(../img-folder/Maven/wps5.jpg)]

(4)Maven插件

maven 管理項目生命週期過程都是基於插件完成的,例如:開發中使用的tomcat插件。

(5)Maven倉庫

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GNEDHJLN-1593161829403)(../img-folder/Maven/1576483374423.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-TyAKRLRt-1593161829405)(../img-folder/Maven/wps7.jpg)]

倉庫名稱 作用
本地倉庫 相當於緩存,工程第一次會從遠程倉庫(互聯網)去下載jar 包,將jar包存在本地倉庫(在程序員的電腦上)。第二次不需要從遠程倉庫去下載。先從本地倉庫找,如果找不到纔會去遠程倉庫找。
中央倉庫(遠程倉庫) 是一種遠程倉庫,倉庫中的jar包由專業團隊(maven團隊)統一維護。裏面存放了全世界大多數流行開源軟件jar包中央倉庫的地址:http://mvnrepository.com/tags/maven
私服(遠程倉庫) 在公司內部架設一臺私服,其它公司架設一臺倉庫,對外公開。

4.使用Maven的好處

通過上邊介紹傳統項目和maven項目在項目構建及依賴管理方面的區別,maven有如下的好處:

1、自動構建(生命週期管理):maven對項目構建的過程進行標準化,通過一個命令即可完成構建過程。

2、依賴管理:maven工程不用手動導jar包,通過在pom.xml中定義座標從maven倉庫自動下載,方便且不易出錯。

3、跨平臺:maven命令可在window、linux上使用,命令無差別。

4、提升效率:遵循maven規範開發有利於提高大型團隊的開發效率,降低項目的維護成本,大公司都會考慮使用maven來構建項目。

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