Maven的概述及基本使用示例詳解
一、Maven簡(jiǎn)介
- Apache Maven是一個(gè)項(xiàng)目管理和構(gòu)建工具,它基于項(xiàng)目對(duì)象模型(POM)的概念,通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建、報(bào)告和文檔
- 官網(wǎng):http://maven.apache.org/
- 項(xiàng)目對(duì)象模型(Project Object Model)
- 依賴管理模型(Dependency)
- 插件(Plugin)

1.1、Maven概述
- Maven是專門(mén)用于管理和構(gòu)建Java項(xiàng)目的工具,它的主要功能有:
- 提供了一套標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu)
- 提供了一套標(biāo)準(zhǔn)化的構(gòu)建流程(編譯、測(cè)試、打包、發(fā)布…)
- 提供了一套依賴管理機(jī)制
- 依賴管理:
- 依賴管理其實(shí)就是管理你項(xiàng)目所依賴的第三方資源(jar包、插件…)
- 1.下載jar包
- 2.復(fù)制jar包到項(xiàng)目
- 3.將jar包加入到工作環(huán)境
1.Maven使用標(biāo)準(zhǔn)的坐標(biāo)配置來(lái)管理各種依賴2.只需要簡(jiǎn)單的配置就可以完成依賴管理
1.2、Maven倉(cāng)庫(kù)
- 倉(cāng)庫(kù):用于存儲(chǔ)資源,包含各種jar包
- 倉(cāng)庫(kù)分類:
- 本地倉(cāng)庫(kù):自己電腦上存儲(chǔ)資源的倉(cāng)庫(kù),連接遠(yuǎn)程倉(cāng)庫(kù)獲取資源
- 遠(yuǎn)程倉(cāng)庫(kù):非本機(jī)電腦上的倉(cāng)庫(kù),為本地倉(cāng)庫(kù)提供資源
- 中央倉(cāng)庫(kù):Maven團(tuán)隊(duì)維護(hù),存儲(chǔ)所有資源的倉(cāng)庫(kù)
- 私服:部門(mén)/公司范圍內(nèi)存儲(chǔ)資源的倉(cāng)庫(kù),從中央倉(cāng)庫(kù)獲取資源
- 私服的作用:
- 保存具有版權(quán)的資源,包含購(gòu)買(mǎi)或自主研發(fā)的jar
- 中央倉(cāng)庫(kù)中的jar都是開(kāi)源的,不能存儲(chǔ)具有版權(quán)的資源
一定范圍內(nèi)共享資源,僅對(duì)內(nèi)部開(kāi)放,不對(duì)外共享
1.3項(xiàng)目獲取jar包過(guò)程
- 假設(shè)有兩個(gè)項(xiàng)目,項(xiàng)目1需要A這個(gè)jar包,,在項(xiàng)目1中寫(xiě)好配置后,Maven就會(huì)自動(dòng)的到本地倉(cāng)庫(kù)中尋找是否有A這個(gè)jar包,如果沒(méi)有,Maven就會(huì)自動(dòng)地到中央倉(cāng)庫(kù)去找,在中央倉(cāng)庫(kù)找到了,此時(shí)Maven會(huì)自動(dòng)地下載中央倉(cāng)庫(kù)里的A的jar包到本地倉(cāng)庫(kù),這時(shí)項(xiàng)目1就引用了A這個(gè)jar包。
- 若項(xiàng)目2也要使用A這個(gè)jar包,項(xiàng)目2寫(xiě)好了配置后,Maven會(huì)自動(dòng)地到本地倉(cāng)庫(kù)尋找,本地倉(cāng)庫(kù)已經(jīng)有了A這個(gè)jar包,此時(shí)直接引用到項(xiàng)目2當(dāng)中完成功能。

- 若存在遠(yuǎn)程倉(cāng)庫(kù)(私服)的情況下,項(xiàng)目2需要引用B這個(gè)jar包,Maven會(huì)現(xiàn)在本地倉(cāng)庫(kù)找,發(fā)現(xiàn)沒(méi)有后回去私服找B這個(gè)jar包,若是沒(méi)有的話,會(huì)到中央倉(cāng)庫(kù),在中央倉(cāng)庫(kù)找到后Maven會(huì)下載B這個(gè)jar包到私服,然后傳遞給本地倉(cāng)庫(kù),這時(shí)項(xiàng)目2就可以引用B的jar包了。

二、Maven使用
2.1Maven安裝配置
- 1.解壓安裝包
apache-maven-3.9.1-bin.zip即安裝完成 - 2.配置環(huán)境變量
MAVEN_HOME為安裝路徑的bin目錄 - 3.配置本地倉(cāng)庫(kù):修改
conf/settings.xml中的<localRepository>為一個(gè)指定目錄 - 4.配置阿里云私服:修改
conf/settings.xml中的<mirros>標(biāo)簽,為其添加如下標(biāo)簽:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOd>central</mirrorOf> </mirror>
2.1.1配置環(huán)境變量
1.找到Maven的安裝目錄,復(fù)制路徑

2.點(diǎn)擊此電腦->屬性:

3.點(diǎn)擊高級(jí)系統(tǒng)設(shè)置

4.點(diǎn)擊環(huán)境變量

5.點(diǎn)擊系統(tǒng)變量的新建

6.變量名為MAVEN_HOME,變量值為maven安裝路徑

7.點(diǎn)擊系統(tǒng)變量中的Path,單擊編輯

8.選擇新建->確定

9.添加環(huán)境變量%MAVEN_HOME%/bin添加完成

此時(shí)打開(kāi)cmd窗口輸入mvn -version出現(xiàn)如下結(jié)果表示配置成功。

2.1.2配置本地倉(cāng)庫(kù)
1.找到Maven安裝目錄下的conf文件夾,并單擊settings.xml文件


2.配置如下代碼
<localRepository>D:\MyApp\Maven\apache-maven-3.9.1\mvn_resp</localRepository>- 其中的路徑是自己定義的我的是
D:\MyApp\Maven\apache-maven-3.9.1\mvn_resp

2.1.3配置阿里云私服
- 還是在Maven安裝目錄下的
conf文件夾,并單擊settings.xml文件 - 在其中配置找到
<mirrors></mirrors>標(biāo)簽并加上如下代碼:
2.2Maven基本使用
2.2.1Maven常用指令
compile:編譯clean:清理test:測(cè)試package:打包install:安裝
在pom.xml所在目錄下按住
shift+右鍵,選擇在此處打開(kāi)Powershell窗口在窗口中輸入
mvn compile開(kāi)始編譯,最后在pom.xml所在目錄下生成target文件,成功結(jié)果如下:

輸入
mvn clean表示刪除target文件

輸入mvn package 會(huì)把當(dāng)前的項(xiàng)目打包:


同樣的test是測(cè)試代碼,這里就不做演示了。
2.2.2Maven生命周期
- Maven構(gòu)建項(xiàng)目生命周期描述的是一次構(gòu)建過(guò)程經(jīng)歷了多少個(gè)事件
- Maven對(duì)項(xiàng)目構(gòu)建的生命周期劃分為3套
- clean:清理工作
- default:核心工作,例如編譯,測(cè)試,打包,安裝等
- site:產(chǎn)生報(bào)告,發(fā)布站點(diǎn)等
- 同一生命周期內(nèi),執(zhí)行后邊的命令,前邊的所有命令會(huì)自動(dòng)執(zhí)行
總結(jié)
到此這篇關(guān)于Maven的概述及基本使用的文章就介紹到這了,更多相關(guān)Maven基本使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于springboot使用rocketmq?RocketMQMessageListener參數(shù)問(wèn)題
這篇文章主要介紹了springboot使用rocketmq?RocketMQMessageListener參數(shù)問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值需要的朋友可以參考下2022-11-11
Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)
下面小編就為大家?guī)?lái)一篇Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
spring cloud gateway 限流的實(shí)現(xiàn)與原理
這篇文章主要介紹了spring cloud gateway 限流的實(shí)現(xiàn)與原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
SpringMVC REST風(fēng)格深入詳細(xì)講解
這篇文章主要介紹了SpringMVC REST風(fēng)格,Rest全稱為Representational State Transfer,翻譯為表現(xiàn)形式狀態(tài)轉(zhuǎn)換,它是一種軟件架構(gòu)2022-10-10
SpringBoot集成Spring security JWT實(shí)現(xiàn)接口權(quán)限認(rèn)證
這篇文章主要介紹了SpringBoot集成Spring security JWT實(shí)現(xiàn)接口權(quán)限認(rèn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Springboot中如何自動(dòng)轉(zhuǎn)JSON輸出
這篇文章主要介紹了Springboot中如何自動(dòng)轉(zhuǎn)JSON輸出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
詳解maven的setting配置文件中mirror和repository的區(qū)別
這篇文章主要介紹了詳解maven的setting配置文件中mirror和repository的區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

