在創(chuàng)建Java項(xiàng)目的時(shí)候,往往會(huì)選擇使用maven工具來(lái)創(chuàng)建項(xiàng)目。本篇文章,將為大家簡(jiǎn)單地介紹一下Java中的Maven工具是什么,Maven能用來(lái)做什么,以及Maven的具體使用方法。
一、Maven是什么?
Maven是一個(gè)跨平臺(tái)的項(xiàng)目管理工具。作為Apache組織的一個(gè)頗為成功的開(kāi)源項(xiàng)目,其主要服務(wù)于基于Java平臺(tái)的項(xiàng)目創(chuàng)建,依賴(lài)管理和項(xiàng)目信息管理,是一個(gè)自動(dòng)化構(gòu)建工具。maven是Apache的頂級(jí)項(xiàng)目,解釋為“專(zhuān)家,內(nèi)行”,它是一個(gè)項(xiàng)目管理的工具,maven自身是純java開(kāi)發(fā)的( Theresult is a tool that can now be used for building and managing any Java-basedproject),可以使用maven對(duì)java項(xiàng)目進(jìn)行構(gòu)建、依賴(lài)管理。
二、Maven的作用
1.管理jar包
(1)增加第三方j(luò)ar包(不需要自己下載jar包)
(2)管理jar包之間的依賴(lài)關(guān)系(maven自動(dòng)關(guān)聯(lián)下載所有依賴(lài)的jar包)
2.將項(xiàng)目拆分成若干個(gè)模塊:借助于Maven可以將一個(gè)項(xiàng)目拆分成多個(gè)工程。(例如愛(ài)洋蔥)
三、Maven能干的事情
1.清理(clean):刪除編譯的結(jié)果,為重新編譯做準(zhǔn)備。
2.驗(yàn)證(validate):驗(yàn)證項(xiàng)目是否正確且所有必須信息是可用的。
3.編譯(cpmpile):java->class
4.測(cè)試(test):針對(duì)于項(xiàng)目中的關(guān)鍵點(diǎn)進(jìn)行測(cè)試,也可用項(xiàng)目中的測(cè)試代碼去測(cè)試開(kāi)發(fā)代碼
5.打包(package):將項(xiàng)目中包含的多個(gè)文件壓縮成一個(gè)文件,用于安裝或部署(java項(xiàng)目打成一個(gè)jar包,web項(xiàng)目打成一個(gè)war包,父工程-pom)
6.檢查(verify):對(duì)集成測(cè)試的結(jié)果進(jìn)行檢查,以保證質(zhì)量達(dá)標(biāo)
7.安裝(install):將打成的包,放到本地倉(cāng)庫(kù),供其他項(xiàng)目使用。
8.部署(deploy):將打成的包,放到服務(wù)器上,準(zhǔn)備運(yùn)行。
四、Maven的好處
Maven的好處總結(jié)起來(lái)有兩點(diǎn),分別是依賴(lài)管理,生命周期。
1.依賴(lài)管理:對(duì)第三方的jar包進(jìn)行統(tǒng)一的管理,通過(guò)maven定義jar包的坐標(biāo),自動(dòng)從maven倉(cāng)庫(kù)中下載到工程(體現(xiàn)了代碼重用的原則)
2.生命周期:生命周期的一鍵構(gòu)建,提供了一套對(duì)項(xiàng)目生命周期管理的標(biāo)準(zhǔn),開(kāi)發(fā)人員,測(cè)試人員統(tǒng)一使用maven進(jìn)行項(xiàng)目的構(gòu)建.項(xiàng)目的生命周期管理:編譯,測(cè)試,打包,部署,運(yùn)行
五、Maven的倉(cāng)庫(kù)分類(lèi)以及簡(jiǎn)單的說(shuō)明
1.本地倉(cāng)庫(kù) : 相當(dāng)于緩存。本地倉(cāng)庫(kù)存儲(chǔ)在本地的磁盤(pán)當(dāng)中,里面存放的是經(jīng)常使用的jar包。
2.遠(yuǎn)程倉(cāng)庫(kù) : 也叫做私服?;久總€(gè)公司都會(huì)有自己的私服,當(dāng)本地的磁盤(pán)中不存在需要的jar包資源,則會(huì)請(qǐng)求私服進(jìn)行資源下載。
3.中央倉(cāng)庫(kù) : 遠(yuǎn)程倉(cāng)庫(kù),由jar專(zhuān)業(yè)團(tuán)隊(duì)統(tǒng)一維護(hù)。
六、Maven定義jar包的各個(gè)字段的描述
groupId : 定義當(dāng)前Maven組織的名稱(chēng)
artifactId : 定義項(xiàng)目模塊
version : 定義當(dāng)前項(xiàng)目的版本
scope : 依賴(lài)的范圍;
其中,依賴(lài)范圍如下圖所示:(提醒一下provided,因?yàn)轫?xiàng)目真正運(yùn)行的時(shí)候,在tomcat有特定的serclet-api,所以在servlet-api的依賴(lài)范圍規(guī)定為provided)
七、Maven常用的命令(生命周期)
mvn clean命令; 清除target目錄
mvn compile命令; 編譯,生成target目錄
mvn test命令; 將測(cè)試代碼和核心代碼一起編譯
mvn package命令; 編譯測(cè)試代碼和核心代碼并且打包對(duì)應(yīng)的包類(lèi)型
mvn install命令; 編譯測(cè)試代碼和核心代碼并且打包對(duì)應(yīng)的包類(lèi)型并且將生成的包安裝到本地倉(cāng)庫(kù)
mvn deploy命令; 用于發(fā)布項(xiàng)目
關(guān)于Java中的Maven是什么,以及怎么使用Maven的內(nèi)容就介紹到此結(jié)束了,想要了解更多關(guān)于Java Maven的其他內(nèi)容,可以多多關(guān)注
W3Cschool其他相關(guān)文章,希望本篇文章能夠幫助到各位小伙伴的學(xué)習(xí)。