当前位置: 首页 > web >正文

Maven 构建命令

Maven 构建命令

  • 1 Maven 构建命令
    • 1.1 mvn clean 清除命令
    • 1.2 mvn compile 编译项目文件命令
    • 1.3 mvn test-compile:编译测试文件命令
    • 1.4 mvn test:执行测试,生成测试报告
    • 1.5 mvn package:打包
    • 1.6 mvn install:安装
    • 1.7 mvn deploy 将构建好的 JAR/WAR 部署到 远程 Maven 仓库
  • 2 其它Maven命令
    • 2.1 查看依赖树
    • 2.2 mvn clean install -U
    • 2.3 跳过测试 mvn clean package -DskipTest
    • 2.4 运行单个测试

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
http://www.xdnf.cn/news/15441.html

相关文章:

  • HTML 基本骨架
  • 【LeetCode 热题 100】23. 合并 K 个升序链表——(解法一)逐一合并
  • DOS下EXE文件的分析 <1>
  • Linux锁的概念及线程同步
  • 【iOS】方法与消息底层分析
  • 深入了解JAVA中Synchronized
  • CCS-MSPM0G3507-7-模块篇-MPU6050的基本使用
  • 002大模型基础知识
  • 认识String、StringBuffer、StringBuilder
  • vue3 el-select默认选中
  • 【设计模式】策略模式(政策(Policy)模式)
  • 从 Manifest V2 升级到 Manifest V3 的注意事项
  • Cursor三大核心AI功能
  • 详解缓存淘汰策略:LFU
  • JS红宝书pdf完整版
  • mac上BRPC的CMakeLists.txt优化:解决Protobuf路径问题
  • SCTP协议网络编程
  • 【算法】贪心算法:柠檬水找零C++
  • Redis 命令总结
  • SpringBoot3-Flowable7初体验
  • Java 内部类详解:从基础到实战,掌握嵌套类、匿名类与局部类的使用技巧
  • Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)
  • MYSQL笔记2
  • 4. MyISAM vs InnoDB:深入解析MySQL两大存储引擎
  • 39.Sentinel微服务流量控制组件
  • 论文笔记:AnImitation Learning Approach for Cache Replacement
  • Prometheus Operator:Kubernetes 监控自动化实践
  • 深入解析Hadoop架构设计:原理、组件与应用
  • Java 高级特性实战:反射与动态代理在 spring 中的核心应用
  • ADB 调试日志全攻略:如何开启与关闭 `ADB_TRACE` 日志