Maven的常用命令總結(jié)大全
一、Maven的常用命令
我們可以在cmd 中通過一系列的 maven 命令來對(duì)我們的 maven-helloworld 工程進(jìn)行編譯、測(cè)試、運(yùn)行、打包、安裝、部署。
1、compile 編譯命令
compile 是 maven 工程的編譯命令,作用是將 src/main/java 下的文件編譯為 class 文件輸出到 target目錄下。cmd 進(jìn)入命令狀態(tài),執(zhí)行mvn compile,如下圖提示成功:

查看 target 目錄,class 文件已生成,編譯完成。

2、test 測(cè)試命令
test 是 maven 工程的測(cè)試命令 mvn test,會(huì)執(zhí)行src/test/java下的單元測(cè)試類。
cmd 執(zhí)行 mvn test 執(zhí)行 src/test/java 下單元測(cè)試類,下圖為測(cè)試結(jié)果,運(yùn)行 1 個(gè)測(cè)試用例,全部成功。

3 、clean 清理命令
clean 是 maven 工程的清理命令,執(zhí)行 clean 會(huì)刪除 target 目錄及內(nèi)容。
4、package 打包命令
package 是 maven 工程的打包命令,對(duì)于 java 工程執(zhí)行 package 打成 jar 包,對(duì)于web 工程打成war包。
5、 install 安裝命令
install 是 maven 工程的安裝命令,執(zhí)行 install 將 maven 打成 jar 包或 war 包發(fā)布到本地倉庫。
從運(yùn)行結(jié)果中,可以看出:當(dāng)后面的命令執(zhí)行時(shí),前面的操作過程也都會(huì)自動(dòng)執(zhí)行,
6、Maven 指令的生命周期
maven 對(duì)項(xiàng)目構(gòu)建過程分為三套相互獨(dú)立的生命周期,請(qǐng)注意這里說的是“三套”,而且“相互獨(dú)立”。
這三套生命周期分別是:
Clean Lifecycle 在進(jìn)行真正的構(gòu)建之前進(jìn)行一些清理工作。
Default Lifecycle 構(gòu)建的核心部分,編譯,測(cè)試,打包,部署等等。
Site Lifecycle 生成項(xiàng)目報(bào)告,站點(diǎn),發(fā)布站點(diǎn)。
| 命令 | 說明 |
|---|---|
| mvn clean | 清除target目錄 |
| mvn compile | 編譯main目錄 |
| mvn test | 執(zhí)行所有的測(cè)試方法 |
| mvn package | 打包當(dāng)前的項(xiàng)目到target目錄 |
| mvn install | 打包并且發(fā)布到本地倉庫 |
二、maven 的概念模型
Maven 包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。

- 項(xiàng)目對(duì)象模型 (Project Object Model)
一個(gè) maven 工程都有一個(gè) pom.xml 文件,通過 pom.xml 文件定義項(xiàng)目的坐標(biāo)、項(xiàng)目依賴、項(xiàng)目信息、插件目標(biāo)等。
- 依賴管理系統(tǒng)(Dependency Management System)
通過 maven 的依賴管理對(duì)項(xiàng)目所依賴的 jar 包進(jìn)行統(tǒng)一管理。比如:項(xiàng)目依賴 junit4.9,通過在 pom.xml 中定義 junit4.9 的依賴即使用 junit4.9,如下所示是 junit4.9的依賴定義:
<!-- 依賴關(guān)系 -->
<dependencies>
<!-- 此項(xiàng)目運(yùn)行使用 junit,所以此項(xiàng)目依賴 junit -->
<dependency>
<!-- junit 的項(xiàng)目名稱 -->
<groupId>junit</groupId>
<!-- junit 的模塊名稱 -->
<artifactId>junit</artifactId>
<!-- junit 版本 -->
<version>4.9</version>
<!-- 依賴范圍:?jiǎn)卧獪y(cè)試時(shí)使用 junit -->
<scope>test</scope>
</dependency>
<dependencies>- 一個(gè)項(xiàng)目生命周期(Project Lifecycle)
使用 maven 完成項(xiàng)目的構(gòu)建,項(xiàng)目構(gòu)建包括:清理、編譯、測(cè)試、部署等過程,maven 將這些
過程規(guī)范為一個(gè)生命周期,如下所示是生命周期的各各階段:

maven 通過執(zhí)行一些簡(jiǎn)單命令即可實(shí)現(xiàn)上邊生命周期的各各過程,比如執(zhí)行 mvn compile 執(zhí)行編譯、執(zhí)行 mvn clean 執(zhí)行清理。
- 一組標(biāo)準(zhǔn)集合
maven將整個(gè)項(xiàng)目管理過程定義一組標(biāo)準(zhǔn),比如:通過 maven 構(gòu)建工程有標(biāo)準(zhǔn)的目錄結(jié)構(gòu),有標(biāo)準(zhǔn)的生命周期階段、依賴管理有標(biāo)準(zhǔn)的坐標(biāo)定義等。
- 插件(plugin)目標(biāo)(goal)
maven 管理項(xiàng)目生命周期過程都是基于插件完成的。
總結(jié)
到此這篇關(guān)于Maven的常用命令總結(jié)的文章就介紹到這了,更多相關(guān)Maven常用命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
maven工程打包引入本地jar包的實(shí)現(xiàn)
我們需要將jar包發(fā)布到一些指定的第三方Maven倉庫,本文主要介紹了maven工程打包引入本地jar包的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Jmeter正則表達(dá)式提取器實(shí)現(xiàn)過程圖解
這篇文章主要介紹了Jmeter正則表達(dá)式提取器實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Springboot2.x結(jié)合Mabatis3.x下Hikari連接數(shù)據(jù)庫報(bào)超時(shí)錯(cuò)誤
本文針對(duì)Springboot2.x與Mybatis3.x結(jié)合使用時(shí),Hikari連接數(shù)據(jù)庫出現(xiàn)超時(shí)錯(cuò)誤的問題進(jìn)行了深入分析,并提供了一系列有效的解決方法,感興趣的可以了解一下2023-11-11
詳解Servlet3.0新特性(從注解配置到websocket編程)
Servlet3.0的出現(xiàn)是servlet史上最大的變革,其中的許多新特性大大的簡(jiǎn)化了web應(yīng)用的開發(fā),為廣大勞苦的程序員減輕了壓力,提高了web開發(fā)的效率。2017-04-04
Idea啟動(dòng)SpringBoot程序報(bào)錯(cuò):Veb server failed to&nbs
這篇文章主要介紹了Idea啟動(dòng)SpringBoot程序報(bào)錯(cuò):Veb server failed to start. Port 8082 was already in use;端口沖突的原理與解決方案,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
RestTemplate使用Proxy代理作為跳板發(fā)送請(qǐng)求
這篇文章主要為大家介紹了RestTemplate使用代理proxy作為跳板發(fā)送請(qǐng)求的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
SpringCloud?Stream?整合RabbitMQ的基本步驟
這篇文章主要介紹了SpringCloud?Stream?整合RabbitMQ的基本步驟,從項(xiàng)目介紹到生產(chǎn)者結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
java實(shí)現(xiàn)兩個(gè)線程交替打印的實(shí)例代碼
在本篇文章里小編給大家整理的是一篇關(guān)于java實(shí)現(xiàn)兩個(gè)線程交替打印的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考下。2019-12-12
SpringBoot結(jié)合Ajax實(shí)現(xiàn)登錄頁面實(shí)例
大家好,本篇文章主要講的是SpringBoot結(jié)合Ajax實(shí)現(xiàn)登錄頁面實(shí)例,感興趣的同學(xué)趕快來看一看,對(duì)你有幫助的話記得收藏一下2022-02-02

