Java maven詳細(xì)介紹
maven
什么是maven
Maven 是一個(gè)項(xiàng)目管理工具,最主要的作用就是管理jar包,他可以把jar統(tǒng)一放到倉(cāng)庫(kù)中,項(xiàng)目直接引用即可,而不用在每個(gè)項(xiàng)目里都放jar包。同時(shí)maven也可以對(duì)項(xiàng)目進(jìn)行構(gòu)建編譯等
一個(gè)Maven項(xiàng)目里會(huì)有一個(gè)pom.xml
,他負(fù)責(zé)管理該項(xiàng)目的jar包的引用
Maven安裝目錄下的conf\settings.xml
是maven的配置文件
倉(cāng)庫(kù)的種類
統(tǒng)一存放jar包的地方稱為倉(cāng)庫(kù),倉(cāng)庫(kù)分為三種:
1.本地倉(cāng)庫(kù):即在本地的倉(cāng)庫(kù),可以通過(guò)
2.私服:通常是公司里的服務(wù)器上所建立的倉(cāng)庫(kù),其一個(gè)項(xiàng)目所用的jar包,便于公司管理
3.中央倉(cāng)庫(kù):是在網(wǎng)上的一個(gè)倉(cāng)庫(kù),其存放了所有的jar包,最全最大
私服和中央倉(cāng)庫(kù)可以統(tǒng)稱為遠(yuǎn)程倉(cāng)庫(kù)
他們?nèi)叩年P(guān)系如下:
1.當(dāng)本地倉(cāng)庫(kù)有該jar包時(shí),直接使用
2.當(dāng)本地倉(cāng)庫(kù)沒(méi)有,但私服有時(shí),從私服下載到本地
3.當(dāng)本地倉(cāng)庫(kù)和私服都沒(méi)有時(shí),私服從中央倉(cāng)庫(kù)下載,緩存在私服上之后,再提供給本地倉(cāng)庫(kù)下載。
私服jar包不僅可以從中央倉(cāng)庫(kù)下載,還可以自己上傳jar包
參考網(wǎng)址
倉(cāng)庫(kù)的配置
配置文件在Maven安裝目錄下的conf\settings.xml
,下面的配置都是寫在該文件下的settings
標(biāo)簽內(nèi)的
本地倉(cāng)庫(kù)配置
本地倉(cāng)庫(kù)默認(rèn)存放在用戶目錄下的.m2/repository/
如果想要修改,需要修改配置文件,直接寫在settings
標(biāo)簽下的localRepository
標(biāo)簽內(nèi)即可
<settings> <localRepository>D:\maven\repository</localRepository> </settings>
私服配置
可以參考https://www.cnblogs.com/qdhxhz/p/9808642.html
中央倉(cāng)庫(kù)配置
在<mirrors>
標(biāo)簽下配置,一個(gè)<mirror>
標(biāo)簽表示一個(gè)中央倉(cāng)庫(kù)。
在下載時(shí),優(yōu)先級(jí)自上而下降低,即先在第一個(gè)中央倉(cāng)庫(kù)中找,如果找不到,就到第二個(gè)倉(cāng)庫(kù)中找
例如
<mirrors> <!-- 阿里云倉(cāng)庫(kù) --> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共倉(cāng)庫(kù)</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror> <!-- 中央倉(cāng)庫(kù)1 --> <mirror> <id>repo1</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo1.maven.org/maven2/</url> </mirror> <!-- 中央倉(cāng)庫(kù)2 --> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror> </mirrors>
maven標(biāo)準(zhǔn)目錄結(jié)構(gòu)
常用命令
maven的命令都是用mvn開頭的,下面所有命令都省略開頭的mvn
complie
:編譯項(xiàng)目,不包括測(cè)試文件clean
:清除編譯等信息test
:編譯項(xiàng)目,包括測(cè)試文件package
:將項(xiàng)目打包,其打包的格式由pom.xml
中的<packaging>war</packaging>
決定,常用的也就jar和war兩種格式install
:將項(xiàng)目打包,并添加到本地倉(cāng)庫(kù)
maven項(xiàng)目的生命周期
- 編譯:對(duì)應(yīng)
complie
- 測(cè)試:對(duì)應(yīng)
test
- 打包:對(duì)應(yīng)
package
- 安裝:對(duì)應(yīng)
install
- 發(fā)布:對(duì)應(yīng)
deploy
這幾個(gè)稱為默認(rèn)生命周期,而clean命令就是清除生命周期,還有一個(gè)站點(diǎn)生命周期(不常用,不再說(shuō)明)
注意:執(zhí)行命令時(shí),會(huì)自動(dòng)執(zhí)行之前階段的命令,例如當(dāng)執(zhí)行package
時(shí),會(huì)自動(dòng)先執(zhí)行complie
和test
pom.xml
依賴適用域
在dependency
下添加scope
標(biāo)簽,其表示當(dāng)前依賴在什么時(shí)候生效,其常用值如下
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java8 Supplier接口和Consumer接口原理解析
這篇文章主要介紹了Java8 Supplier接口和Consumer接口原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04解決Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫(kù)與表的方案
這篇文章主要介紹了解決Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫(kù)與表的方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Java volatile的適用場(chǎng)景實(shí)例詳解
在本文里我們給大家整理了一篇關(guān)于Java volatile的適用場(chǎng)景實(shí)例內(nèi)容和知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。2019-08-08解讀線程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1
這篇文章主要介紹了解讀線程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1)區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08親手教你IDEA2020.3創(chuàng)建Javaweb項(xiàng)目的步驟詳解
這篇文章主要介紹了IDEA2020.3創(chuàng)建Javaweb項(xiàng)目的步驟詳解,本文是小編手把手教你,通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-03-03