Maven介紹
Maven是一個軟體專案管理和理解工具。基於專案物件模型(POM),可以通過一小段描述資訊來管理專案的構建、報告和文件的軟體專案工具。
ofollow,noindex">Maven官網地址

image.png
上圖中,Maven3.3+要求jdk1.7以上。
點選下載按鈕,選擇下載的包。
下載完成後解壓得到此目錄:

image.png
配置環境變數
計算機→屬性→高階系統設定→高階→環境變數
新建一個環境變數M2_HOME

image.png
再到path中追加環境變數:%M2_HOME%\bin
測試是否成功,windows+R 鍵入cmd開啟命令列,輸入 mvn -v :

image.png
見到以上輸出,即maven環境變數配置成功。
構建專案
常用的命令
mvn -v檢視maven版本 mvn compile 編譯 mvn test 測試 mvn package 打包 mvn clean 刪除target mvn install 安裝jar包到本地
maven自動建立目錄
archetype
外掛,用於建立符合maven規定的目錄骨架。
maven規定:

圖源於慕課網免費課.png

圖源於慕課網免費課.png
建立目錄的兩種方式:
- archetype:generate 按照提示進行選擇。
- archetype:generate -DgroupId=組織名,公司網址的反寫+專案名 -DartifactId=專案名-模組名 -Dversion=版本號 -Dpackage=程式碼所存在的包名
例如:mvn archetype:generate -DgroupId=com.imooc.maven04 -DartifactId=maven04-demo -Dversion=1.0.0SNAPSHOT -Dpackage=com.imooc.maven04.demo
maven中的座標和倉庫
座標:在maven中任何一個依賴、外掛等都稱之為構件,所有的構件均通過座標作為唯一標識。

image.png
建立maven專案時,java的包名應該和groupId、artifactId相同。
如此多的構建儲存在什麼地方?
倉庫就是用來管理專案依賴:
- 本地倉庫
- 遠端倉庫
預設提供全球倉庫地址,在這個地方檢視:

image.png
開啟這個jar,

image.png
這個pom檔案中就有全球倉庫地址。
所有的maven專案都會繼承這個pom檔案。
maven的生命週期和外掛

image.png

image.png
maven依賴範圍

image.png
<scope></scope>標籤:依賴的範圍。
平時在開發時,如果要使用某一個框架,就要將該框架的jar包引入到專案的classpath(路徑)中,這樣專案就可以使用該框架封裝好的一些方法。
maven中提供了三種classpath:
- 編譯
- 測試
- 執行
依賴的範圍就是用來控制依賴與三種classpath的關係。
<scope></scope>文件可以在 scope方法 檢視。
依賴關係範圍用於限制依賴關係的傳遞性,還用於影響用於各種構建任務的類路徑。
scope有6種範圍:
- compile:這是預設範圍,如果未指定則預設使用。編譯、測試、執行三種classpath都有效
- provided:在編譯和執行時有效
- runtime:在測試和執行時有效
- test:只在測試時有效
- system:此範圍與provided的類似,必須提供明確包含它的jar。於本機系統相關,可移植性差
- import:此範圍僅在<dependencyManagement>這個標籤種,表示從其他的pom.xml中繼承來的依賴
maven依賴傳遞
舉個例子:B → A, C→B,那麼可以認為 C→A。(B依賴A,C依賴B,那麼C依賴A)
這就是依賴的傳遞。
示例:
新建一個資料夾: Java_workspace
,存放Java Project
開啟這個資料夾,新建Module

image.png
我用的開發工具是IntelliJ IEDA,和eclipse不同。
使用maven構建:

image.png
填寫:

image.png
然後一直next,next,finish,等待構建完成。(電腦情況不同構建速度不同,期間可能會下載東西)

image.png
構建完成後會出現上圖這種資訊。
構建完成後,再構建兩個不同名但是同包的專案,第二個專案依賴第一個,第三個依賴第二個,開啟1、2、3專案中的pom.xml:

image.png
在第二個專案中的pom.xml增加專案一的依賴:
把專案一的這部分(專案一的座標):

image.png
放到專案二的這裡:

image.png
,再按照上述,給專案三新增專案二的座標,(新增依賴)。
完成後開啟maven project : windows下快捷鍵:Ctrl+Shift+A 選擇 maven project:

image.png

image.png
上圖中install是安裝到本地倉庫。
先把專案一打包生成jar,安裝到本地倉庫,再去專案二編譯。
同理,專案三依賴專案二也是這種操作。
最終可以看到,專案三成功依賴於專案二和專案一:

image.png
如果專案三隻想依賴專案二 不想依賴專案一,可以在專案三中的pom.xml中增加如下:

image.png
這時,專案三就只依賴於專案二了:

image.png