關(guān)于Maven生命周期相關(guān)命令演示
Maven 是一個(gè)廣泛使用的項(xiàng)目管理工具,尤其在 Java 項(xiàng)目中。它通過(guò)定義一系列的生命周期階段(Phases)來(lái)管理項(xiàng)目的構(gòu)建過(guò)程。理解這些生命周期階段及其相關(guān)命令,對(duì)于高效地構(gòu)建和管理項(xiàng)目至關(guān)重要。
本文將通過(guò)實(shí)際演示,詳細(xì)介紹 Maven 的生命周期及其相關(guān)命令。
1. Maven 生命周期概述
Maven 的生命周期分為三個(gè)主要的生命周期:
Clean Lifecycle:用于清理項(xiàng)目。Default Lifecycle:用于構(gòu)建項(xiàng)目。Site Lifecycle:用于生成項(xiàng)目站點(diǎn)文檔。
每個(gè)生命周期由一系列的階段(Phases)組成,每個(gè)階段代表了一個(gè)特定的構(gòu)建步驟。
1.1 Clean Lifecycle
Clean Lifecycle 包含以下幾個(gè)階段:
pre-clean: 執(zhí)行一些清理前的準(zhǔn)備工作。clean: 刪除之前構(gòu)建生成的所有文件。post-clean: 執(zhí)行一些清理后的操作。
1.2 Default Lifecycle
Default Lifecycle 包含多個(gè)階段,以下是一些關(guān)鍵階段:
validate: 驗(yàn)證項(xiàng)目是否正確,所有必要信息是否可用。compile: 編譯項(xiàng)目的源代碼。test: 使用單元測(cè)試框架測(cè)試編譯后的源代碼。package: 將編譯后的代碼打包成可分發(fā)的格式(如 JAR、WAR 等)。verify: 對(duì)集成測(cè)試的結(jié)果進(jìn)行檢查,確保質(zhì)量標(biāo)準(zhǔn)。install: 將包安裝到本地倉(cāng)庫(kù),供其他項(xiàng)目使用。deploy: 將最終的包復(fù)制到遠(yuǎn)程倉(cāng)庫(kù),供其他開(kāi)發(fā)人員和項(xiàng)目使用。
1.3 Site Lifecycle
Site Lifecycle 包含以下幾個(gè)階段:
pre-site: 執(zhí)行一些生成站點(diǎn)前的準(zhǔn)備工作。site: 生成項(xiàng)目的站點(diǎn)文檔。post-site: 執(zhí)行一些生成站點(diǎn)后的操作。site-deploy: 將生成的站點(diǎn)文檔部署到指定的服務(wù)器。
2. Maven 生命周期相關(guān)命令演示
接下來(lái),我們將通過(guò)實(shí)際操作演示 Maven 生命周期中的關(guān)鍵命令。
2.1 Clean Lifecycle 相關(guān)命令
2.1.1 mvn clean
mvn clean 命令用于刪除之前構(gòu)建生成的所有文件。
mvn clean- 執(zhí)行該命令后,Maven 會(huì)刪除
target目錄下的所有文件和目錄。
未清理前:

執(zhí)行清理:

清理之后:

2.2 Default Lifecycle 相關(guān)命令
2.2.1 mvn validate
mvn validate 命令用于驗(yàn)證項(xiàng)目是否正確,所有必要信息是否可用。
mvn validate- 該命令通常在構(gòu)建過(guò)程的早期執(zhí)行,以確保項(xiàng)目的基本配置是正確的。
2.2.2 mvn compile
mvn compile 命令用于編譯項(xiàng)目的源代碼。
mvn compile- 執(zhí)行該命令后,Maven 會(huì)將項(xiàng)目的源代碼編譯成字節(jié)碼,并生成相應(yīng)的類文件。

2.2.3 mvn test
mvn test 命令用于運(yùn)行項(xiàng)目的單元測(cè)試。
mvn test- 執(zhí)行該命令后,Maven 會(huì)運(yùn)行項(xiàng)目中的所有單元測(cè)試,并生成測(cè)試報(bào)告。
test命令的作用是編譯并運(yùn)行maven項(xiàng)目的src/test目錄下的junit測(cè)試代碼。注意:只能運(yùn)行junit測(cè)試代碼。并且使用test運(yùn)行的測(cè)試類的類名必須以Test結(jié)尾,否則不會(huì)運(yùn)行,不會(huì)看到結(jié)果。
在test/java目錄下創(chuàng)建一個(gè)測(cè)試類,書(shū)寫(xiě)測(cè)試方法,代碼如下:
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}編譯后生成的文件:

運(yùn)行日志:

注意:
- 1.test命令只能運(yùn)行test目錄下的junit包下的類
- 2.test命令也可以運(yùn)行多個(gè)測(cè)試方法:
import org.junit.Test;
public class MavenTest {
@Test
public void show() {
System.out.println("show............");
}
@Test
public void show1() {
System.out.println("show1............");
}
@Test
public void show2() {
System.out.println("show2............");
}
}
2.2.4 mvn package
mvn package 命令用于將編譯后的代碼打包成可分發(fā)的格式(如 JAR、WAR 等)。
mvn package- 執(zhí)行該命令后,Maven 會(huì)將編譯后的代碼打包成一個(gè) JAR 或 WAR 文件,并存放在
target目錄下。

注意:每次打包前還會(huì)再次執(zhí)行所有test命令。
2.2.5 mvn verify
mvn verify 命令用于對(duì)集成測(cè)試的結(jié)果進(jìn)行檢查,確保質(zhì)量標(biāo)準(zhǔn)。
mvn verify- 該命令通常在
package階段之后執(zhí)行,用于驗(yàn)證打包后的代碼是否符合質(zhì)量標(biāo)準(zhǔn)。
2.2.6 mvn install
mvn install 命令用于將包安裝到本地倉(cāng)庫(kù),供其他項(xiàng)目使用。
mvn install- 執(zhí)行該命令后,Maven 會(huì)將打包后的文件安裝到本地 Maven 倉(cāng)庫(kù)中,供其他項(xiàng)目引用。


注意:每次安裝前還會(huì)再次執(zhí)行所有test命令。
2.2.7 mvn deploy
mvn deploy 命令用于將最終的包復(fù)制到遠(yuǎn)程倉(cāng)庫(kù),供其他開(kāi)發(fā)人員和項(xiàng)目使用。
mvn deploy- 執(zhí)行該命令后,Maven 會(huì)將打包后的文件部署到遠(yuǎn)程 Maven 倉(cāng)庫(kù)中,供其他開(kāi)發(fā)人員和項(xiàng)目引用。
2.3 Site Lifecycle 相關(guān)命令
2.3.1 mvn site
mvn site 命令用于生成項(xiàng)目的站點(diǎn)文檔。
mvn site- 執(zhí)行該命令后,Maven 會(huì)生成項(xiàng)目的站點(diǎn)文檔,并存放在
target/site目錄下。
2.3.2 mvn site-deploy
mvn site-deploy 命令用于將生成的站點(diǎn)文檔部署到指定的服務(wù)器。
mvn site-deploy- 執(zhí)行該命令后,Maven 會(huì)將生成的站點(diǎn)文檔部署到指定的服務(wù)器上。
2.4 組合命令
Maven 允許將多個(gè)生命周期階段組合在一起執(zhí)行。例如:
2.4.1 mvn clean install
mvn clean install 命令用于先清理項(xiàng)目,然后安裝包到本地倉(cāng)庫(kù)。
mvn clean install- 執(zhí)行該命令后,Maven 會(huì)先刪除
target目錄下的所有文件,然后編譯、測(cè)試、打包并安裝到本地倉(cāng)庫(kù)。
2.4.2 mvn clean package
mvn clean package 命令用于先清理項(xiàng)目,然后打包代碼。
mvn clean package- 執(zhí)行該命令后,Maven 會(huì)先刪除
target目錄下的所有文件,然后編譯、測(cè)試并打包代碼。
3. 插件與生命周期
Maven 的生命周期階段是通過(guò)插件(Plugins)來(lái)實(shí)現(xiàn)的。每個(gè)階段都對(duì)應(yīng)一個(gè)或多個(gè)插件的目標(biāo)(Goals)。
例如,compile 階段通常由 maven-compiler-plugin 插件的 compile 目標(biāo)來(lái)執(zhí)行。
你可以通過(guò)配置 pom.xml 文件來(lái)定制插件的行為,例如指定編譯器的版本、源代碼的編碼等。
4. 總結(jié)
Maven 的生命周期是項(xiàng)目構(gòu)建的核心,理解并掌握這些生命周期階段及其相關(guān)命令,可以幫助你更高效地管理和構(gòu)建 Java 項(xiàng)目。通過(guò)組合不同的生命周期階段,你可以靈活地執(zhí)行各種構(gòu)建任務(wù),確保項(xiàng)目的質(zhì)量和可維護(hù)性。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springcloud feign調(diào)其他微服務(wù)時(shí)參數(shù)是對(duì)象的問(wèn)題
這篇文章主要介紹了springcloud feign調(diào)其他微服務(wù)時(shí)參數(shù)是對(duì)象的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
MyBatis-Plus輸出完整SQL(帶參數(shù))的三種方案
當(dāng)我們使用 mybatis-plus 時(shí),可能會(huì)遇到SQL 不能直接執(zhí)行,調(diào)試也不方便的情況,那么,如何打印完整 SQL(帶參數(shù))呢?本篇文章將介紹 3 種實(shí)現(xiàn)方式,并對(duì)比它們的優(yōu)缺點(diǎn),需要的朋友可以參考下2025-02-02
springboot模塊里面調(diào)用另外一個(gè)模塊的方法實(shí)現(xiàn)
在Spring-Boot項(xiàng)目開(kāi)發(fā)中,存在著本模塊的代碼需要訪問(wèn)外面模塊接口,本文就來(lái)介紹一下springboot模塊里面調(diào)用另外一個(gè)模塊的方法實(shí)現(xiàn),感興趣的可以了解一下2023-11-11
java中如何把實(shí)體類轉(zhuǎn)成json格式的字符串
這篇文章主要介紹了java中如何把實(shí)體類轉(zhuǎn)成json格式的字符串問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Spring Boot整合MybatisPlus逆向工程(MySQL/PostgreSQL)
MyBatis-Plus是MyBatis的增強(qiáng)工具,本文主要介紹了Spring Boot整合MybatisPlus逆向工程(MySQL/PostgreSQL),具有一定的參考價(jià)值,感興趣的可以了解一下2021-07-07

