中文字幕 日本 在线 高清,久久精品国产99精品国,超碰人人香蕉,一区二区三区无码高清视频

Java中Maven詳解(java中的maven)

什么是Maven

Maven 是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模、型 (pom: Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。

maven能做什么

1,省去jar包的導(dǎo)入,而是坐標(biāo)來(lái)進(jìn)行導(dǎo)入,減少了項(xiàng)目的內(nèi)存大小

2,更加方便的構(gòu)建項(xiàng)目,實(shí)現(xiàn)項(xiàng)目的一鍵構(gòu)建。指的是項(xiàng)目從編譯、測(cè)試、運(yùn)行、打包、安裝 ,部署整個(gè)過(guò)程都交給 maven 進(jìn)行管理,這個(gè)過(guò)程稱為構(gòu)建

Maven 倉(cāng)庫(kù)的分類

maven 的工作需要從倉(cāng)庫(kù)下載一些 jar 包,如下圖所示,本地的項(xiàng)目 A、項(xiàng)目 B 等都會(huì)通過(guò) maven軟件從遠(yuǎn)程倉(cāng)庫(kù)(可以理解為互聯(lián)網(wǎng)上的倉(cāng)庫(kù))下載 jar 包并存在本地倉(cāng)庫(kù),本地倉(cāng)庫(kù) 就是本地文件夾,當(dāng)?shù)诙涡枰?jar 包時(shí)則不再?gòu)倪h(yuǎn)程倉(cāng)庫(kù)下載,因?yàn)楸镜貍}(cāng)庫(kù)已經(jīng)存在了,可以將本地倉(cāng)庫(kù)理解為緩存,有了本地倉(cāng)庫(kù)就不用每次從遠(yuǎn)程倉(cāng)庫(kù)下載了。

下圖描述了 maven 中倉(cāng)庫(kù)的類型:

本地倉(cāng)庫(kù) :用來(lái)存儲(chǔ)從遠(yuǎn)程倉(cāng)庫(kù)或中央倉(cāng)庫(kù)下載的插件和 jar 包,項(xiàng)目使用一些插件或 jar 包,優(yōu)先從本地倉(cāng)庫(kù)查找默認(rèn)本地倉(cāng)庫(kù)位置在${user.dir}/.m2/repository, ${user.dir}表示 windows 用戶目錄

遠(yuǎn)程倉(cāng)庫(kù):如果本地需要插件或者 jar 包,本地倉(cāng)庫(kù)沒(méi)有, 默認(rèn)去遠(yuǎn)程倉(cāng)庫(kù)下載。遠(yuǎn)程倉(cāng)庫(kù)可以在互聯(lián)網(wǎng)內(nèi)也可以在局域網(wǎng)內(nèi)。

中央倉(cāng)庫(kù) :在 maven 軟件中內(nèi)置一個(gè)遠(yuǎn)程倉(cāng)庫(kù)地址http://repo1.maven.org/maven2 ,它是中央倉(cāng)庫(kù),服務(wù)于整個(gè)互聯(lián)網(wǎng),它是由 Maven 團(tuán)隊(duì)自己維護(hù),里面存儲(chǔ)了非常全的 jar 包,它包含了世界上大部分流行的開(kāi)源項(xiàng)目構(gòu)件。

maven 的概念模型

Maven 包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(ProjectLifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。

? 項(xiàng)目對(duì)象模型 (Project Object Model)

一個(gè) maven 工程都有一個(gè) pom.xml 文件,通過(guò) pom.xml 文件定義項(xiàng)目的坐標(biāo)、項(xiàng)目依賴、項(xiàng)目信息、

插件目標(biāo)等。

? 依賴管理系統(tǒng)(Dependency Management System)

通過(guò) maven 的依賴管理對(duì)項(xiàng)目所依賴的 jar 包進(jìn)行統(tǒng)一管理。

比如:項(xiàng)目依賴 junit4.9,通過(guò)在 pom.xml 中定義 junit4.9 的依賴即使用 junit4.9,如下所示是 junit4.9的依賴定義:

? 一個(gè)項(xiàng)目生命周期(Project Lifecycle)

使用 maven 完成項(xiàng)目的構(gòu)建,項(xiàng)目構(gòu)建包括:清理、編譯、測(cè)試、部署等過(guò)程, maven 將這些

過(guò)程規(guī)范為一個(gè)生命周期,如下所示是生命周期的各各階段:

常用的 maven 命令

compile:編譯

clean:清理

test:測(cè)試

package:打包

install:安裝

坐標(biāo)定義

在 pom.xml 中定義坐標(biāo),內(nèi)容包括: groupId、 artifactId、 version,詳細(xì)內(nèi)容如下:

<!–項(xiàng)目名稱,定義為組織名 項(xiàng)目名,類似包名–>

<groupId>cn.itcast.maven</groupId>

<!– 模塊名稱 –>

<artifactId>maven-first</artifactId>

<!– 當(dāng)前項(xiàng)目版本號(hào), snapshot 為快照版本即非正式版本, release 為正式發(fā)布版本 –>

<version>0.0.1-SNAPSHOT</version>

<packaging > :打包類型

jar:執(zhí)行 package 會(huì)打成 jar 包

war:執(zhí)行 package 會(huì)打成 war 包

pom :用于 maven 工程的繼承,通常父工程設(shè)置為 pom

pom 基本配置

pom.xml 是 Maven 項(xiàng)目的核心配置文件,位于每個(gè)工程的根目錄,基本配置如下:

<project > :文件的根節(jié)點(diǎn) .

<modelversion > : pom.xml 使用的對(duì)象模型版本

<groupId > : 項(xiàng)目名稱,一般寫(xiě)項(xiàng)目的域名

<artifactId > : 模塊名稱,子項(xiàng)目名或模塊名稱

<version > :產(chǎn)品的版本號(hào) .

<packaging > :打包類型,一般有 jar、 war、 pom 等

<name > :項(xiàng)目的顯示名,常用于 Maven 生成的文檔。

<description > :項(xiàng)目描述,常用于 Maven 生成的文檔

<dependencies> :項(xiàng)目依賴構(gòu)件配置,配置項(xiàng)目依賴構(gòu)件的坐標(biāo)

<build> :項(xiàng)目構(gòu)建配置,配置編譯、運(yùn)行插件等。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2023年11月21日 下午5:29
下一篇 2023年11月21日 下午5:46

相關(guān)推薦