更新時(shí)間:2018-07-27 來(lái)源:黑馬程序員 瀏覽量:
一、Maven簡(jiǎn)介(一)什么是Maven
Maven是apache下的開源項(xiàng)目,項(xiàng)目管理工具,管理java項(xiàng)目。
1、項(xiàng)目對(duì)象模型(Project Object Model)
POM對(duì)象模型,每個(gè)maven工程中都有一個(gè)pom.xml文件,定義工程所依賴的jar包、本工程的坐標(biāo)、打包運(yùn)行方式。。
2、依賴管理系統(tǒng)(基礎(chǔ)核心 )
maven通過(guò)坐標(biāo)對(duì)項(xiàng)目工程所依賴的jar包統(tǒng)一規(guī)范管理。
3、maven定義一套項(xiàng)目生命周期
清理、初始化、編譯、測(cè)試、報(bào)告、打包、部署、站點(diǎn)生成
4、一組標(biāo)準(zhǔn)集合
強(qiáng)調(diào):maven工程有自己標(biāo)準(zhǔn)的工程目錄結(jié)構(gòu)、定義坐標(biāo)有標(biāo)準(zhǔn)。
5、maven 管理項(xiàng)目生命周期過(guò)程都是基于插件完成的
(二)Maven倉(cāng)庫(kù)
1、中央倉(cāng)庫(kù)
就是遠(yuǎn)程倉(cāng)庫(kù),倉(cāng)庫(kù)中jar由專業(yè)團(tuán)隊(duì)(maven團(tuán)隊(duì))統(tǒng)一維護(hù)。
中央倉(cāng)庫(kù)的地址:http://repo1.maven.org/maven2/
2、本地倉(cāng)庫(kù)
相當(dāng)于緩存,工程第一次會(huì)從遠(yuǎn)程倉(cāng)庫(kù)(互聯(lián)網(wǎng))去下載jar 包,將jar包存在本地倉(cāng)庫(kù)(在程序員的電腦上)。第二次不需要從遠(yuǎn)程倉(cāng)庫(kù)去下載。先從本地倉(cāng)庫(kù)找,如果找不到才會(huì)去遠(yuǎn)程倉(cāng)庫(kù)找。
3、私服
在公司內(nèi)部架設(shè)一臺(tái)私服,其它公司架設(shè)一臺(tái)倉(cāng)庫(kù),對(duì)外公開。
(三)本地倉(cāng)庫(kù)配置1. 拷貝本地倉(cāng)庫(kù)
將資料中的repository_ssh.zip解壓到D盤
2. 配置本地倉(cāng)庫(kù)
打開maven的安裝目錄中conf/ settings.xml文件,在這里配置本地倉(cāng)庫(kù):
<localRepository>D:\repository_ssh</localRepository>
這里的意思是配置本地倉(cāng)庫(kù)的目錄為D:\repository_ssh
工程目錄結(jié)構(gòu)說(shuō)明:
project
/src/main/java 主體程序 java源文件(不要放配置文件)
/src/main/resources 主體程序所需要的配置文件(不要放java文件)
/src/test/java 單元測(cè)試程序 java源文件
/src/test/resources 單元測(cè)試程序所用的配置文件
/target 編譯輸出目錄
pom.xml Maven進(jìn)行工作的主要配置文件。
(四)項(xiàng)目生命周期(了解)Maven有三套相互獨(dú)立的生命周期,分別是:clean、default、site。clean主要是清理項(xiàng)目、default是Maven最核心的的構(gòu)建項(xiàng)目、site是生成項(xiàng)目站點(diǎn)。每一個(gè)大的生命周期又分為很多個(gè)階段。后面的階段依賴于前面的階段,這點(diǎn)有點(diǎn)像Ant的構(gòu)建依賴。生命周期本身相互獨(dú)立,用戶可以僅僅調(diào)用生命周期的某一個(gè)階段,也就是說(shuō)用戶調(diào)用了default周期的任何階段,并不會(huì)觸發(fā)clean周期以及site周期的任何事情。
(1)clean周期:
pre-clean:準(zhǔn)備清理
clean:真正的清理工作
post-clean:執(zhí)行清理后的一些后續(xù)工作
(2)default周期:
validate:驗(yàn)證
initialize:初始化配置
generate-sources:生成源代碼編譯目錄
process-sources:處理項(xiàng)目主資源文件,復(fù)制資源文件到outputclasspath
generate-resources:生成資源目錄
process-resources:處理資源文件
complie:編譯源代碼
process-classes:處理編譯后文件
generate-test-sources:生成測(cè)試目錄
process-test-sources:處理項(xiàng)目測(cè)試資源文件,復(fù)制測(cè)試資源文件到outputclasspath
generate-test-resources:生成測(cè)試資源文件
process-test-resources:處理測(cè)試資源文件
test-compile:編譯測(cè)試代碼
process-test-classes:處理測(cè)試代碼
test:?jiǎn)卧獪y(cè)試運(yùn)行測(cè)試代碼
prepare-package:打包前的準(zhǔn)備
package:將編譯好的代碼打包成為jar或者war或者ear等等
pre-integration-test:準(zhǔn)備整體測(cè)試
integration-test:整體測(cè)試
post-integration-test:為整體測(cè)試收尾
verify:驗(yàn)證
install:安裝到本地Maven庫(kù)
deploy:將最終包部署到遠(yuǎn)程Maven倉(cāng)庫(kù)
(3)site周期:
pre-site:準(zhǔn)備生成站點(diǎn)
site:生成站點(diǎn)及文檔
post-site:站點(diǎn)收尾
site-deploy:將生成的站點(diǎn)發(fā)布到服務(wù)器上
(五)常見命令
常用命令如下:
compile:編譯
clean:清理,將target下的class文件清理
test:執(zhí)行單元測(cè)試類,執(zhí)行src/test/java下的類
package :將java工程打成jar、war。
install:安裝命令,將將程的jar發(fā)布到本地倉(cāng)庫(kù)
發(fā)布到倉(cāng)庫(kù),目錄按照本工程定義的坐標(biāo)生成目錄
擴(kuò)展:
其實(shí)我們所執(zhí)行的這些命令是對(duì)maven原生命令的封裝,我們可以在命令提示符下直接通過(guò)這些命令來(lái)對(duì)代碼進(jìn)行編譯打包等操作,格式如下:
mvn 命令名稱 運(yùn)行不調(diào)試
mvnDebug 命令名稱 調(diào)試運(yùn)行
我們要在命令提示符下執(zhí)行maven命令必須配置下面兩個(gè)環(huán)境變量
MAVEN_HOME D:\apache-maven-3.3.9
PATH %MAVEN_HOME%\bin
測(cè)試Maven環(huán)境 ,在控制臺(tái)輸入mvn -v ,有下列信息輸出表示Maven配置正常。
作者:黑馬程序員javaEE培訓(xùn)學(xué)院
首發(fā):http://java.itheima.com/