欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于Maven構(gòu)建命令使用詳解

 更新時(shí)間:2025年02月28日 10:04:26   作者:drebander  
Maven構(gòu)建命令詳解:mvnclean、mvncompile、mvntest、mvnpackage、mvninstall、mvndeploy及其他常用命令,幫助開(kāi)發(fā)者高效管理項(xiàng)目構(gòu)建流程

1. Maven 構(gòu)建命令概述

Maven 是 Java 生態(tài)中最流行的構(gòu)建工具之一,它提供了一套標(biāo)準(zhǔn)化的構(gòu)建命令,使得開(kāi)發(fā)者可以輕松管理項(xiàng)目的編譯、測(cè)試、打包、安裝和部署等任務(wù)。

本篇文章將深入解析 Maven 中最常用的構(gòu)建命令,包括:

  • mvn clean
  • mvn compile
  • mvn test
  • mvn package
  • mvn install
  • mvn deploy
  • 其他常見(jiàn)命令,如 mvn dependency:tree、mvn help:effective-pom 等。

2. Maven 構(gòu)建命令詳解

2.1 mvn clean

作用:清除 target/ 目錄,刪除之前構(gòu)建的文件,確保下一次構(gòu)建的干凈環(huán)境。

mvn clean

執(zhí)行過(guò)程

  • 刪除 target/ 目錄
  • 移除編譯生成的 class 文件、打包的 JAR 文件等

適用場(chǎng)景

  • 在重新構(gòu)建項(xiàng)目之前,避免舊的編譯文件影響新版本。

示例

mvn clean package

效果

  • 先清理 target/ 目錄,再進(jìn)行打包。

2.2 mvn compile

作用:編譯 src/main/java 目錄下的源代碼,并生成 .class 文件到 target/classes/ 目錄。

mvn compile

執(zhí)行過(guò)程

  • 解析 pom.xml
  • 下載項(xiàng)目依賴(lài)(如果依賴(lài)不存在)
  • 編譯 src/main/java 目錄下的 Java 源代碼
  • 生成 .class 文件到 target/classes/

適用場(chǎng)景

  • 當(dāng)需要僅編譯代碼而不執(zhí)行測(cè)試時(shí)。

示例

mvn clean compile

效果

  • 先清理 target/ 目錄,然后編譯代碼。

2.3 mvn test

作用:編譯 src/test/java 目錄下的測(cè)試代碼,并運(yùn)行單元測(cè)試(JUnit、TestNG)。

mvn test

執(zhí)行過(guò)程

  • 先執(zhí)行 mvn compile
  • 編譯 src/test/java 目錄下的測(cè)試代碼
  • 運(yùn)行測(cè)試(JUnit 或 TestNG)

適用場(chǎng)景

  • 運(yùn)行項(xiàng)目中的單元測(cè)試,確保代碼邏輯正確。

示例

mvn clean test

效果

  • 先清理 target/ 目錄,然后運(yùn)行所有測(cè)試。

2.4 mvn package

作用:將編譯后的代碼打包(如 JAR、WAR)到 target/ 目錄。

mvn package

執(zhí)行過(guò)程

  • 先執(zhí)行 mvn test
  • 打包 target/classes/ 下的文件為 JAR 或 WAR

適用場(chǎng)景

  • 當(dāng)需要生成可部署的 JAR/WAR 文件時(shí)。

示例

mvn clean package

效果

  • 清理舊的 target/ 目錄,編譯代碼,運(yùn)行測(cè)試,最終打包 JAR/WAR。

2.5 mvn install

作用:將打包好的 JAR/WAR 文件安裝到 本地 Maven 倉(cāng)庫(kù)~/.m2/repository/),供其他項(xiàng)目使用。

mvn install

執(zhí)行過(guò)程

  • 先執(zhí)行 mvn package
  • target/ 目錄中的 JAR/WAR 文件復(fù)制到本地 Maven 倉(cāng)庫(kù)

適用場(chǎng)景

  • 當(dāng)開(kāi)發(fā)多個(gè)模塊(Module)時(shí),一個(gè)模塊可以安裝到本地倉(cāng)庫(kù),以便另一個(gè)模塊引用。

示例

mvn clean install

效果

  • 清理舊的構(gòu)建,編譯代碼,運(yùn)行測(cè)試,打包,并安裝到本地倉(cāng)庫(kù)。

2.6 mvn deploy

作用:將構(gòu)建好的 JAR/WAR 部署到 遠(yuǎn)程 Maven 倉(cāng)庫(kù),如 Nexus、Artifactory。

mvn deploy

執(zhí)行過(guò)程

  • 先執(zhí)行 mvn install
  • 上傳 target/ 目錄中的 JAR/WAR 文件到遠(yuǎn)程 Maven 倉(cāng)庫(kù)

適用場(chǎng)景

  • 當(dāng)開(kāi)發(fā)的庫(kù)需要在團(tuán)隊(duì)內(nèi)部共享時(shí),可以部署到私有倉(cāng)庫(kù)(如 Nexus)。

示例

mvn clean deploy

效果

  • 清理、編譯、測(cè)試、打包,并上傳到遠(yuǎn)程倉(cāng)庫(kù)。

3. 其他常用 Maven 命令

3.1 查看依賴(lài)樹(shù)

作用:列出所有項(xiàng)目依賴(lài),包括傳遞性依賴(lài),幫助分析依賴(lài)沖突。

mvn dependency:tree

示例

mvn dependency:tree

輸出

[INFO] com.example:my-app:jar:1.0-SNAPSHOT
[INFO] ├─ org.springframework:spring-core:jar:5.3.9:compile
[INFO] ├─ commons-logging:commons-logging:jar:1.2:compile

3.2 強(qiáng)制更新依賴(lài)

作用:強(qiáng)制更新所有依賴(lài),確保拉取最新版本。

mvn clean install -U

3.3 顯示 Maven 有效的 POM 配置

作用:查看合并后的 pom.xml,幫助調(diào)試依賴(lài)管理。

mvn help:effective-pom

3.4 跳過(guò)測(cè)試

作用:構(gòu)建時(shí)跳過(guò)單元測(cè)試,提高構(gòu)建速度。

mvn clean package -DskipTests

3.5 運(yùn)行單個(gè)測(cè)試

作用:只運(yùn)行指定的測(cè)試類(lèi),而不是運(yùn)行所有測(cè)試。

mvn test -Dtest=MyTestClass

3.6 運(yùn)行 Web 項(xiàng)目

作用:如果使用 tomcat7-maven-plugin,可以直接運(yùn)行 Web 項(xiàng)目。

mvn tomcat7:run

4. Maven 常用命令總結(jié)

命令作用
mvn clean刪除 target/ 目錄,清理構(gòu)建文件
mvn compile編譯 src/main/java 目錄中的代碼
mvn test運(yùn)行 src/test/java 目錄下的測(cè)試代碼
mvn package生成 JAR/WAR 文件
mvn install將 JAR/WAR 安裝到本地 Maven 倉(cāng)庫(kù)
mvn deploy將 JAR/WAR 部署到遠(yuǎn)程倉(cāng)庫(kù)
mvn dependency:tree查看項(xiàng)目的依賴(lài)樹(shù)
mvn clean install -U強(qiáng)制更新依賴(lài)
mvn help:effective-pom查看合并后的 POM 配置
mvn clean package -DskipTests跳過(guò)測(cè)試打包
mvn test -Dtest=MyTestClass只運(yùn)行指定的測(cè)試類(lèi)

5. 總結(jié)

  • Maven 提供了一套標(biāo)準(zhǔn)的構(gòu)建命令,涵蓋了 清理、編譯、測(cè)試、打包、安裝、部署 等功能。
  • 通過(guò) mvn clean install 可以完成一次完整的構(gòu)建,并安裝到本地倉(cāng)庫(kù)。
  • 通過(guò) mvn deploy 可以將構(gòu)建好的 JAR/WAR 部署到遠(yuǎn)程倉(cāng)庫(kù),供團(tuán)隊(duì)共享。
  • 通過(guò) mvn dependency:tree 可以分析依賴(lài)關(guān)系,幫助解決依賴(lài)沖突。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java生成隨機(jī)字符串的兩種方法

    java生成隨機(jī)字符串的兩種方法

    這篇文章主要為大家詳細(xì)介紹了java生成隨機(jī)字符串的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • SpringBoot獲取maven打包時(shí)間的兩種方式

    SpringBoot獲取maven打包時(shí)間的兩種方式

    這篇文章主要介紹了SpringBoot獲取maven打包時(shí)間的兩種方式,文章通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • SpringBoot項(xiàng)目中使用AOP的方法

    SpringBoot項(xiàng)目中使用AOP的方法

    本篇文章主要介紹了SpringBoot項(xiàng)目中使用AOP的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Java動(dòng)態(tài)設(shè)置注解值及原理詳解

    Java動(dòng)態(tài)設(shè)置注解值及原理詳解

    這篇文章主要介紹了Java動(dòng)態(tài)設(shè)置注解值及原理詳解,AnnotationInvocationHandler是注解的代理hander,通過(guò)反射獲取類(lèi)的注解時(shí)會(huì)通過(guò)AnnotationInvocationHandler創(chuàng)建代理對(duì)象并將數(shù)據(jù)存儲(chǔ)到memberValues里,需要的朋友可以參考下
    2023-11-11
  • Java項(xiàng)目中添加外部jar包的兩種方式(收藏版)

    Java項(xiàng)目中添加外部jar包的兩種方式(收藏版)

    這篇文章主要介紹了java項(xiàng)目中添加外部jar包的兩種方式,第二種方式是將外部jar包引入到本地maven倉(cāng)庫(kù)中,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Java運(yùn)算符>、>>、>>>三者的區(qū)別

    Java運(yùn)算符>、>>、>>>三者的區(qū)別

    這篇文章主要介紹了Java運(yùn)算符>、>>、>>>三者的區(qū)別,做了一個(gè)簡(jiǎn)單的對(duì)比,并用實(shí)例說(shuō)明,需要的朋友可以參考下
    2014-06-06
  • SpringBoot接口數(shù)據(jù)加解密實(shí)戰(zhàn)記錄

    SpringBoot接口數(shù)據(jù)加解密實(shí)戰(zhàn)記錄

    現(xiàn)今對(duì)于大多數(shù)公司來(lái)說(shuō),信息安全工作尤為重要,下面這篇文章主要給大家介紹了關(guān)于SpringBoot接口數(shù)據(jù)加解密的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • SpringBoot?Profile多環(huán)境配置方式

    SpringBoot?Profile多環(huán)境配置方式

    這篇文章主要介紹了SpringBoot?Profile多環(huán)境配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 關(guān)于Java中byte[]?和?String互相轉(zhuǎn)換問(wèn)題

    關(guān)于Java中byte[]?和?String互相轉(zhuǎn)換問(wèn)題

    這篇文章主要介紹了Java中byte[]?和?String互相轉(zhuǎn)換問(wèn)題,通過(guò)用例給大家介紹了通過(guò)String類(lèi)將String轉(zhuǎn)換成byte[]或者byte[]轉(zhuǎn)換成String,具體實(shí)例代碼跟隨小編一起看看吧
    2022-01-01
  • 詳解Java中AbstractMap抽象類(lèi)

    詳解Java中AbstractMap抽象類(lèi)

    本篇文章給大家詳細(xì)介紹了Java集合中的AbstractMap抽象類(lèi)的相關(guān)用法以及知識(shí)點(diǎn)總結(jié),需要的朋友參考下。
    2018-03-03

最新評(píng)論