日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念

發(fā)布時(shí)間:2024/9/27 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


1 maven概念模型

2 maven的生命周期,項(xiàng)目構(gòu)建過程

Maven生命周期就是為了對(duì)所有的構(gòu)建過程進(jìn)行抽象和統(tǒng)一

包括項(xiàng)目清理,初始化,編譯,打包,測試,部署等幾乎所有構(gòu)建步驟

?

Maven有“三套”相互獨(dú)立的生命周期,而且相互獨(dú)立,這三套生命周期分別是:

Maven三大生命周期

clean:清理項(xiàng)目的

在進(jìn)行真正的構(gòu)建之前進(jìn)行一些清理工作。

default:構(gòu)建項(xiàng)目的

構(gòu)建的核心部分,編譯,測試,打包,部署等等。

site:生成項(xiàng)目站點(diǎn)的

生成項(xiàng)目報(bào)告,站點(diǎn),發(fā)布站點(diǎn)

要特別注意的是:它們是相互獨(dú)立的,可以僅僅調(diào)用clean來清理工作目錄,僅僅調(diào)用site來生成站點(diǎn)。當(dāng)然也可以直接運(yùn)行mvn clean install site 運(yùn)行著三套生命周期。

?

clean生命周期每套生命周期都由一組階段(Phase組成),我們平時(shí)在命令行輸入的命令總會(huì)對(duì)應(yīng)于一個(gè)特定的階段。比如mvn clean,這個(gè)cleanClean生命周期的一個(gè)階段。

clean生命周期

pre-clean

執(zhí)行一些需要在clean之前完成的工作

clean

移除所有上一次構(gòu)建生成的文件

post-clean

執(zhí)行一些需要在clean之后立刻完成的工作

注意:

mvn clean 中的clean就是上面的clean,在一個(gè)生命周期中,運(yùn)行某個(gè)階段的時(shí)候,它之前的所有階段都會(huì)被運(yùn)行,也就是說,mvn clean等同于mvn pre-clean clean,那么pre-clean就會(huì)被運(yùn)行。這是Maven很重要的一個(gè)規(guī)則,可以大大簡化命令行的輸入。

?

site生命周期

pre-site

執(zhí)行需要生成站點(diǎn)文檔之前完成的工作

site

生成項(xiàng)目的站點(diǎn)文檔

post-site

執(zhí)行一些需要生成站點(diǎn)文檔之后完成的工作,并且為部署做準(zhǔn)備

site-deploy

將生成的站點(diǎn)文檔部署到特定的服務(wù)器上

注意:

這里經(jīng)常用到的是site階段和site-deploy階段,用以生成和發(fā)布Maven站點(diǎn),這可是Maven相當(dāng)強(qiáng)大的功能,Manager比較喜歡,文檔及統(tǒng)計(jì)數(shù)據(jù)自動(dòng)生成。

?

Default生命周期是Maven生命周期中最重要的一個(gè),絕大部分工作都發(fā)生在這個(gè)生命周期中。這里,只解釋一些比較重要和常用的階段:

Default生命周期

validate

?

generate-sources

?

process-sources

?

generate-resources

?

process-resources

復(fù)制并處理資源文件,至目標(biāo)目錄,準(zhǔn)備打包

compile

編譯項(xiàng)目的源代碼。

process-classes

?

generate-test-sources

?

process-test-sources

?

generate-test-resources

?

process-test-resources

復(fù)制并處理資源文件,至目標(biāo)測試目錄

test-compile

編譯測試源代碼

process-test-classes

?

test

使用合適的單元測試框架運(yùn)行測試。這些測試代碼不會(huì)被打包或部署

prepare-package

?

package

接受編譯好的代碼,打包成可發(fā)布的格式,如JAR

pre-integration-test

?

integration-test

?

post-integration-test

?

verify

?

install

將包安裝至本地倉庫,以讓其它項(xiàng)目依賴

deploy

將最終的包賦值到遠(yuǎn)程的倉庫,以讓它開人員與項(xiàng)目共享。

注意:

運(yùn)行任何一個(gè)階段的時(shí)候,它前面的所有階段都會(huì)被運(yùn)行,這也就是為什么我們運(yùn)行mvn install 的時(shí)候,代碼會(huì)被編譯,測試,打包。此外,Maven的插件機(jī)制是完全依賴Maven的生命周期的,因此理解生命周期至關(guān)重要。

?




3 Maven坐標(biāo)

Maven坐標(biāo)主要組成

groupId :定義當(dāng)前Maven項(xiàng)目隸屬項(xiàng)目(習(xí)慣用包名來做)

例子:


artifactid:定義實(shí)際項(xiàng)目中的一個(gè)模板(一般是主類名)

version:定義當(dāng)前項(xiàng)目的當(dāng)前版本

packaging:定義該項(xiàng)目的打包方式(jar,war等方式)



4 依賴管理(依賴范圍,依賴聲明)

依賴范圍(scope

依賴聲明

<dependencies>

?????????????????? <dependency>

??????????????????????????? <groupId>junit</groupId>

??????????????????????????? <artifactId>junit</artifactId>

??????????????????????????? <version>4.10</version>

??????????????????????????? <scope>test</scope>

?????????????????? </dependency>

</dependencies>

其中依賴范圍scope 用來控制依賴和編譯,測試,運(yùn)行的classpath的關(guān)系.主要的是三種依賴關(guān)系如下:

1.?????? compile:默認(rèn)編譯依賴范圍。對(duì)于編譯,測試,運(yùn)行三種classpath都有效

2.?????? test:測試依賴范圍。只對(duì)于測試classpath有效

3.?????? provided:已提供依賴范圍。對(duì)于編譯,測試的classpath都有效,但對(duì)于運(yùn)行無效。因此由容器已經(jīng)提供,例如servlet_api

4.?????? runtime:運(yùn)行時(shí)提供。例如:jdbc驅(qū)動(dòng)

?

傳遞性依賴:

?

見傳遞依賴圖

?

傳遞性依賴影響范圍

傳遞性依賴原則:

?

A-->B

A-->C

?

1.路徑最近者優(yōu)先

2.路徑相同,第一聲明者優(yōu)先

?

注意:

1.dependencyManagement中定義的依賴子module不會(huì)共享

2.dependencies中定義的依賴子module可以共享

?

可選依賴不被傳遞

?

依賴優(yōu)化:mvn dependency:list

5 倉庫管理,私服概念

何為Maven倉庫

A 用來統(tǒng)一存儲(chǔ)所有Maven共享構(gòu)建的位置就是倉庫

Maven倉庫布局

根據(jù)Maven坐標(biāo)定義每個(gè)構(gòu)建在倉庫中唯一存儲(chǔ)路徑

大致為:groupId/artifactId/version/artifactId-version.packaging

倉庫的分類:

本地倉庫:

~/.m2/repository/

每個(gè)用戶只有一個(gè)本地倉庫

遠(yuǎn)程倉庫

中央倉庫:Maven默認(rèn)的遠(yuǎn)程倉庫

http://repo1.maven.org/maven2

私服:是一種特殊的遠(yuǎn)程倉庫,它是架設(shè)在局域網(wǎng)內(nèi)的倉庫

鏡像:用來替代中央倉庫,速度一般比中央倉庫塊。

?

總結(jié)

以上是生活随笔為你收集整理的4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。