Java中Maven詳解(java中的maven)

什么是Maven

Maven 是一個項目管理工具,它包含了一個項目對象模、型 (pom: Project Object Model),一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。

maven能做什么

1,省去jar包的導入,而是坐標來進行導入,減少了項目的內存大小

2,更加方便的構建項目,實現項目的一鍵構建。指的是項目從編譯、測試、運行、打包、安裝 ,部署整個過程都交給 maven 進行管理,這個過程稱為構建

Maven 倉庫的分類

maven 的工作需要從倉庫下載一些 jar 包,如下圖所示,本地的項目 A、項目 B 等都會通過 maven軟件從遠程倉庫(可以理解為互聯網上的倉庫)下載 jar 包并存在本地倉庫,本地倉庫 就是本地文件夾,當第二次需要此 jar 包時則不再從遠程倉庫下載,因為本地倉庫已經存在了,可以將本地倉庫理解為緩存,有了本地倉庫就不用每次從遠程倉庫下載了。

下圖描述了 maven 中倉庫的類型:

本地倉庫 :用來存儲從遠程倉庫或中央倉庫下載的插件和 jar 包,項目使用一些插件或 jar 包,優先從本地倉庫查找默認本地倉庫位置在${user.dir}/.m2/repository, ${user.dir}表示 windows 用戶目錄

遠程倉庫:如果本地需要插件或者 jar 包,本地倉庫沒有, 默認去遠程倉庫下載。遠程倉庫可以在互聯網內也可以在局域網內。

中央倉庫 :在 maven 軟件中內置一個遠程倉庫地址http://repo1.maven.org/maven2 ,它是中央倉庫,服務于整個互聯網,它是由 Maven 團隊自己維護,里面存儲了非常全的 jar 包,它包含了世界上大部分流行的開源項目構件。

maven 的概念模型

Maven 包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命周期(ProjectLifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。

? 項目對象模型 (Project Object Model)

一個 maven 工程都有一個 pom.xml 文件,通過 pom.xml 文件定義項目的坐標、項目依賴、項目信息、

插件目標等。

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

通過 maven 的依賴管理對項目所依賴的 jar 包進行統一管理。

比如:項目依賴 junit4.9,通過在 pom.xml 中定義 junit4.9 的依賴即使用 junit4.9,如下所示是 junit4.9的依賴定義:

? 一個項目生命周期(Project Lifecycle)

使用 maven 完成項目的構建,項目構建包括:清理、編譯、測試、部署等過程, maven 將這些

過程規范為一個生命周期,如下所示是生命周期的各各階段:

常用的 maven 命令

compile:編譯

clean:清理

test:測試

package:打包

install:安裝

坐標定義

在 pom.xml 中定義坐標,內容包括: groupId、 artifactId、 version,詳細內容如下:

<!–項目名稱,定義為組織名 項目名,類似包名–>

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

<!– 模塊名稱 –>

<artifactId>maven-first</artifactId>

<!– 當前項目版本號, snapshot 為快照版本即非正式版本, release 為正式發布版本 –>

<version>0.0.1-SNAPSHOT</version>

<packaging > :打包類型

jar:執行 package 會打成 jar 包

war:執行 package 會打成 war 包

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

pom 基本配置

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

<project > :文件的根節點 .

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

<groupId > : 項目名稱,一般寫項目的域名

<artifactId > : 模塊名稱,子項目名或模塊名稱

<version > :產品的版本號 .

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

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

<description > :項目描述,常用于 Maven 生成的文檔

<dependencies> :項目依賴構件配置,配置項目依賴構件的坐標

<build> :項目構建配置,配置編譯、運行插件等。

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

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

相關推薦

国产真实系列在线| 欧美高清在线精品一区二区不卡| 女人zozozo与禽交| 久久精品一区二区| 精品人妻少妇一区二区三区在线 | 国产成人亚洲精品91专区高清 | 天天操天天操天天操| 久久99国产精品成人欧美| 日本特黄特色aaa大片免费| 亚洲国产精品成人精品软件 | 激情五月综合网| 十分钟在线观看免费视频www| 色网站在线播放| 国产日韩欧美自拍| 24小时日本电影免费看| 国产香蕉国产精品偷在线| 一卡2卡3卡4卡免费高清| 成人一级黄色毛片| 久久亚洲精品成人无码网站| 日韩欧美色视频在线观看| 亚洲嫩草影院在线观看| 欧美性生交xxxxx丝袜| 亚洲色偷偷综合亚洲av伊人| 滴着奶水做着爱中文字幕| 亚洲精品第一国产综合精品| 波多野结衣办公室33分钟| 免费在线观看a级片| 疯狂三人交性欧美| 又大又粗又爽的三级小视频| 美团外卖猛男男同38分钟| 国产一区二区三区在线观看免费 | 久久久精品免费视频| 无码毛片视频一区二区本码| 久久这里只精品| 日韩欧美亚洲中字幕在线播放| 亚洲人成未满十八禁网站| 樱桃视频直播在线观看免费| 亚洲欧洲日韩综合| 欧美同性videos免费可播放| 亚洲欧洲日产国码AV系列天堂| 日韩精品中文字幕无码专区|