首頁(yè)技術(shù)文章正文

Maven

更新時(shí)間:2018-07-27 來(lái)源:黑馬程序員 瀏覽量:

一、Maven簡(jiǎn)介(一)什么是Maven


      Maven是apache下的開(kāi)源項(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ì)外公開(kāi)。


(三)本地倉(cāng)庫(kù)配置1. 拷貝本地倉(cāng)庫(kù)

將資料中的repository_ssh.zip解壓到D盤(pán)
2. 配置本地倉(cāng)庫(kù)
打開(kāi)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ù)器上

(五)常見(jiàn)命令

常用命令如下:

compile:編譯

clean:清理,將target下的class文件清理

test:執(zhí)行單元測(cè)試類(lèi),執(zhí)行src/test/java下的類(lèi)

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/

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!