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