Java-Maven(三):Maven坐标、Maven仓库、Maven生命周期
之前通過學(xué)習(xí)對(duì)maven命令有了部分了解,但是只是知道m(xù)aven是用來做什么。但到目前位置還不足以全面的了解maven,為更全面的了解maven,需要學(xué)習(xí)以下幾個(gè)概念:Maven坐標(biāo)、Maven倉庫、Maven生命周期。
Maven坐標(biāo)
maven坐標(biāo)概念:每個(gè)構(gòu)件都有自己的一個(gè)標(biāo)識(shí)(唯一的),它由groupId,artifactId,version等信息組成,因此maven就可以對(duì)構(gòu)件進(jìn)行版本控制、管理。
備注:
groupId :公司名稱或者組織名稱;
artifactId:項(xiàng)目名稱;
version:當(dāng)前項(xiàng)目的版本號(hào)。
上邊定義maven的概念時(shí)提到了構(gòu)件,那么什么是構(gòu)件呢?
------在maven中任何依賴(jar包)、項(xiàng)目輸出(通過其他工具打包的jar、war等)都可以稱為構(gòu)件。
packing:定義maven項(xiàng)目打包的方式,也可以通過定義打包成war等;當(dāng)不定義packing時(shí),maven就會(huì)使用默認(rèn)值jar。
classifer:表示在相同版本下針對(duì)不同的環(huán)境或者jdk使用的jar,如果配置了這個(gè)元素,則將這個(gè)元素的名稱附加到報(bào)名的后邊。例如:json-0.1-jdk1.6.jar。
Maven倉庫
maven倉庫定義:在maven中會(huì)有一個(gè)統(tǒng)一存儲(chǔ)所有項(xiàng)目的共享構(gòu)建的位置,這個(gè)統(tǒng)一的位置,我們就稱之為倉庫。
maven倉庫的分類:本地倉庫、遠(yuǎn)程倉庫。
其中遠(yuǎn)程倉庫有分為三種:中央倉庫、私服、其他公共倉庫。
1)本地倉庫:maven在本地存儲(chǔ)構(gòu)件的地方。
注意:maven的本地倉庫,在maven安裝后并不創(chuàng)建,它是在第一次執(zhí)行maven命令的時(shí)候才被創(chuàng)建的。
maven本地倉庫的默認(rèn)位置:無論windows還是linux環(huán)境,都是默認(rèn)位置都是在用戶的目錄下的一個(gè)./m2/repository/倉庫目錄,這就是maven倉庫的默認(rèn)位置。
maven本地倉庫的默認(rèn)位置更改:通過修改配置文件settings.xml中的localRepository標(biāo)簽,就可以實(shí)現(xiàn)。
備注:一般修改時(shí),可以把之前已經(jīng)下載的本地構(gòu)件內(nèi)容賦值到新的構(gòu)件存儲(chǔ)目錄下,這樣就可以省去重新下載構(gòu)件的時(shí)間。
Maven生命周期
maven聲明周期概念:它是對(duì)所有的構(gòu)建過程進(jìn)行抽象和統(tǒng)一。包含了項(xiàng)目的清理、初始化、編譯、測(cè)試、打包、集成測(cè)試、驗(yàn)證、部署和站點(diǎn)生成等幾乎所有的構(gòu)建過程步驟。
Maven有三套相互獨(dú)立的生命周期,它們是相互獨(dú)立的。分別是:
Clean :在進(jìn)行構(gòu)件之前進(jìn)行一些清理工作
1)pre-clean:執(zhí)行清理前需要完成的工作;
2)clean:清理上一次構(gòu)建生成的文件;
3)post-clean:執(zhí)行清理后需要完成的工作。
Default:構(gòu)件的核心部分:編譯、測(cè)試、打包、部署等
1)validate:驗(yàn)證工程是否正確,所有需要的資源是否可用;
2)compile:編譯項(xiàng)目的源代碼;
3)test:使用合適的單元測(cè)試框架來測(cè)試已經(jīng)編譯的源代碼,該測(cè)試不需要打包和部署。
4)package:把已編譯的代碼打包發(fā)成可發(fā)布的格式,比如:jar;
5)integration-test:如有需要將包處理和發(fā)布一個(gè)能夠進(jìn)行集成測(cè)試的環(huán)境。
6)verify:運(yùn)行所有檢查,驗(yàn)證包是否有效且達(dá)到質(zhì)量標(biāo)準(zhǔn);
7)install:把包安裝到maven本地倉庫,可以被其他工程作為依賴來使用;
8)deploy:在集成或者發(fā)布環(huán)境下執(zhí)行,將最終版本的包拷貝到遠(yuǎn)程的repository,使得其他的開發(fā)者或者工程可以共享。
Site :生成項(xiàng)目報(bào)告、站點(diǎn),站點(diǎn)發(fā)布。
1)pre-site:生成項(xiàng)目站點(diǎn)之前需要完成的工作;
2)site:生成項(xiàng)目站點(diǎn)文檔;
3)post-site:生成項(xiàng)目站點(diǎn)之后需要完成的工作;
4)site-deploy:將項(xiàng)目站點(diǎn)文件發(fā)布到服務(wù)器。
注意:
運(yùn)行任何一個(gè)階段的時(shí)候,它前面的所有階段都會(huì)被運(yùn)行。例如:運(yùn)行mvn install時(shí),代碼會(huì)被編譯、測(cè)試、打包。
比如:運(yùn)行mvn site命令,一定會(huì)執(zhí)行pre-site該步驟;運(yùn)行mvn site-deploy命令,一定會(huì)執(zhí)行pre-site和site這兩個(gè)步驟。
總結(jié)
以上是生活随笔為你收集整理的Java-Maven(三):Maven坐标、Maven仓库、Maven生命周期的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 姓氏佟,怎样自我介绍才能给大家留下深刻印
- 下一篇: 急需 升学宴对联 名字是良鼎 谢谢