Maven 构建命令

发布于:2025-07-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

1 Maven 构建命令

1.1 mvn clean 清除命令

  • 执行过程:
    • 删除当前工程中的target文件夹
  • 适用场景:
    在重新构建项目之前,避免旧的编译文件影响新版本。
    • 示例
# 清理 、打包
mvn clean package

1.2 mvn compile 编译项目文件命令

  • 执行过程:
    • 将 src/main/java文件夹下的resources中所有文件都拷贝到target/classes/文件夹里
    • 编译当前工程的src/main/java文件夹里的所有java文件,将生成的.class文件放入当前工程的target/classes/文件夹里
  • 适用场景:
    当需要仅编译代码而不执行测试时。

1.3 mvn test-compile:编译测试文件命令

  • 执行过程:
    • 执行mvn compile
    • 将test文件夹下的resources中所有文件都拷贝到target文件夹里
    • 编译当前工程的test文件夹里的所有java文件,将生成的.class文件放入当前工程的target文件夹里。

1.4 mvn test:执行测试,生成测试报告

  • 执行过程:
    • 执行mvn test-compile
    • 运行生成的.class文件,执行测试类中所有的测试方法,生成测试报告,将测试报告放进target\surefire-reports文件夹里。
  • 适用场景:
    运行项目中的单元测试,确保代码逻辑正确

1.5 mvn package:打包

  • 执行过程:
    • 执行mvn test
    • 如果测试没有问题,将main下所有java文件生成的所有class文件打包成jar或war,放入target文件夹里
  • 适用场景:
    当需要生成可部署的 JAR/WAR 文件时。

1.6 mvn install:安装

  • 执行过程:
    • 执行mvn package
    • 把生成的jar/war包放入本地仓库

1.7 mvn deploy 将构建好的 JAR/WAR 部署到 远程 Maven 仓库

  • 执行过程:
    • 先执行 mvn install
    • 上传 target/ 目录中的 JAR/WAR 文件到远程 Maven 仓库
  • 适用场景:
    当开发的库需要在团队内部共享时,可以部署到私有仓库(如 Nexus)

2 其它Maven命令

2.1 查看依赖树

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

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

2.2 mvn clean install -U

这个命令实际上结合了三个 Maven 命令:clean、install 和 -U(更新快照)。

  • -U 或 --update-snapshots
    • 作用:强制检查所有依赖的最新版本(包括 SNAPSHOT 版本)。
    • 使用场景:
      当项目依赖了 SNAPSHOT 版本的依赖,且这些依赖可能经常更新时。
      当你怀疑有新的依赖版本可用,但 Maven 没有自动检测到这些更新

当执行 mvn clean install -U 命令时,Maven 将按以下顺序执行:

  • 清理阶段(clean):删除 target 目录,清理之前的构建结果。
  • 默认生命周期:执行项目的默认生命周期阶段,包括编译(compile)、测试(test)和打包(package)等。
  • 安装(install):将打包好的项目安装到本地仓库。
  • 更新快照(-U):检查并更新所有 SNAPSHOT 依赖。

2.3 跳过测试 mvn clean package -DskipTest

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

mvn clean package -DskipTest

2.4 运行单个测试

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

mvn test -Dtest=MyTestClass

网站公告

今日签到

点亮在社区的每一天
去签到