开发者

关于Maven构建命令使用详解

目录
  • 1. Maven 构建命令概述
  • 2. Maven 构建命令详解
    • 2.1 mvn clean
    • 2.2 mvn compile
    • 2.3 mvn test
    • 2.4 mvn package
    • 2.5 mvn install
    • 2.6 mvn deploy
  • 3. 其他常用 Maven 命令
    • 3.1 查看依赖树
    • 3.2 强制更新依赖
    • 3.3 显示 Maven 有效的 POM 配置
    • 3.4 跳过测试
    • 3.5 运行单个测试
    • 3.6 运行 Web 项目
  • 4. Maven 常用命令总结
    • 5. 总结

      1. Maven 构建命令概述

      Maven 是 Java 生态中最流行的构建工具之一,它提供了一套标准化的构建命令,使得开发者可以轻松管理项目的编译、测试、打包、安装和部署等任务。

      本篇文章将深入解析 Maven 中最常用的构建命令,包括:

      • mvn clean
      • mvn compile
      • mvn test
      • mvn package
      • mvn install
      • mvn deploy
      • 其他常见命令,如 mvn dependency:treemvn help:effective-pom 等。

      2. Maven 构建命令详解

      2.1 mvn clean

      作用:清除 target/ 目录,删除之前构建的文件,确保下一次构建的干净环境。

      mvn clean

      执行过程

      • 删除 target/ 目录
      • 移除编译生成的 class 文件、打包的 JAR 文件等

      适用场景

      • 在重新构建项目之前,避免旧的编译文件影响新版本。

      示例

      mvn clean package

      效果

      • 先清理 target/ 目录编程客栈,再进行打包。

      2.2 mvn compile

      作用:编译 src/main/java 目录下的源代码,并生成 .class 文件到 target/classes/ 目录。

      mvn compile

      执行过程

      • 解析 pom.XML
      • 下载项目依赖(如果依赖不存在)
      • 编译 src/main/java 目录下的 Java 源代码
      • 生成 .编程客栈class 文件到 target/classes/

      适用场景

      • 当需要仅编译代码而不执行测试时。

      示例

      mvn clean compile

      效果

      • 先清理 target/ 目录,然后编译代码。

      2.3 mvn test

      作用:编译 src/test/java 目录下的测试代码,并运行单元测试(JUnit、TestNG)。

      mvn test

      执行过程

      • 先执行 mvn compile
      • 编译 src/test/java 目录下的测试代码
      • 运行测试(JUnit 或 TestNG)

      适用场景

      • 运行项目中的单元测试,确保代码逻辑正确。

      示例

      mvn clean test

      效果

      • 先清理 target/ 目录,然后运行所有测试。

      2.4 mvn package

      作用:将编译后的代码打包(如 JAR、WAR)到 target/ 目录。

      mvn package

      执行过程

      • 先执行 mvn test
      • 打包 target/classes/ 下的文件为 JAR 或 WAR

      适用场景

      • 当需要生成可部署的 JAR/WAR 文件时。

      示例

      mvn clean package

      效果

      • 清理旧的 target/ 目录,编译代码,运行测试,最终打包 JAR/WAR。

      2.5 mvn install

      作用:将打包好的 JAR/WAR 文件安装到 本地 Maven 仓库~/.m2/repository/),供其他项目使用。

      mvn install

      执行过程

      • 先执行 mvn package
      • target/ 目录中的 JAR/WAR 文件复制到本地 Maven 仓库

      适用场景

      • 当开发多个模块(Module)时,一个模块可以安装到本地仓库,以便另一个模块wQUEHEHIZp引用。

      示例

      mvn clean install

      效果

      • 清理旧的构建,编译代码,运行测试,打包,并安装到本地仓库。

      2.6 mvn deploy

      作用:将构建好的 JAR/WAR 部署到 远程 Maven 仓库,如 Nexus、Artifactory。

      mvn deploy

      执行过程

      • 先执行 mvn install
      • 上传 target/ 目录中的 JAR/WAR 文件到远程 Maven 仓库

      适用场景

      • 当开发的库需要在团队内部共享时,可以部署到私有仓库(如 Nexus)。

      示例

      mvn clean deploy

      效果

      • 清理、编译、测试、打包,并上传到远程仓库。

      3. 其他常用 Maven 命令

      3.1 查看依赖树

      作用:列出所有项目依赖,包括传递性依赖,帮助分析依赖冲突。

      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] ├─ commonswQUEHEHIZp-logging:commons-logging:jar:1.2:compile

      3.2 强制更新依赖

      作用:强制更新所有依赖,确保拉取最新版本。

      mvn clean install -U

      3.3 显示 Maven 有效的 POM 配置

      作用:查看合并后的 pom.xml,帮助调试依赖管理。

      mvn help:effective-pom

      3.4 跳过测试

      作用:构建时跳编程客栈过单元测试,提高构建速度。

      mvn clean package -DskipTests

      3.5 运行单个测试

      作用:只运行指定的测试类,而不是运行所有测试。

      mvn test -Dtest=MyTestClass

      3.6 运行 Web 项目

      作用:如果使用 tomcat7-maven-plugin,可以直接运行 Web 项目。

      mvn tomcat7:run

      4. Maven 常用命令总结

      命令作用
      mvn clean删除 target/ 目录,清理构建文件
      mvn compile编译 src/main/java 目录中的代码
      mvn test运行 src/test/java 目录下的测试代码
      mvn package生成 JAR/WAR 文件
      mvn install将 JAR/WAR 安装到本地 Maven 仓库
      mvn deploy将 JAR/WAR 部署到远程仓库
      mvn dependency:tree查看项目的依赖树
      mvn clean install -U强制更新依赖
      mvn help:effective-pom查看合并后的 POM 配置
      mvn clean package -DskipTests跳过测试打包
      mvn test -Dtest=MyTestClass只运行指定的测试类

      5. 总结

      • Maven 提供了一套标准的构建命令,涵盖了 清理、编译、测试、打包、安装、部署 等功能。
      • 通过 mvn clean install 可以完成一次完整的构建,并安装到本地仓库。
      • 通过 mvn deploy 可以将构建好的 JAR/WAR 部署到远程仓库,供团队共享。
      • 通过 mvn dependency:tree 可以分析依赖关系,帮助解决依赖冲突。

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜