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

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.dtcms.com/a/277030.html

相关文章:

  • RedisJSON 的 `JSON.ARRAPPEND`一行命令让数组动态生长
  • vue防内存泄漏和性能优化浅解
  • CSS中@media介绍和使用示例
  • 7.13 note
  • 型模块化协作机器人结构设计cad【1张】三维图+设计说明书
  • 机器人猫咪能否温暖中老年孤独
  • 【Complete Search】-基础完全搜索-Basic Complete Search
  • 摩尔线程MUSA架构深度调优指南:从CUDA到MUSA的显存访问模式重构原则
  • Java: OracleHelper
  • Appium源码深度解析:从驱动到架构
  • Vue3 实现文件上传功能
  • HarmonyOS组件/模板集成创新活动-开发者工具箱
  • Vue配置特性(ref、props、混入、插件与作用域样式)
  • FusionOne HCI 23 超融合实施手册(超聚变超融合)
  • 第七章 算法题
  • NO.4数据结构数组和矩阵|一维数组|二维数组|对称矩阵|三角矩阵|三对角矩阵|稀疏矩阵
  • 电源中的声学-噪声,如何抑制开关电源的噪声
  • 飞算JavaAI:开启 Java 开发 “人机协作” 新纪元
  • 二叉树算法详解和C++代码示例
  • 项目合作复盘:如何把项目经验转化为可复用资产
  • 【C++】第十五节—一文详解 | 继承
  • ArkUI Inspector工具用法全解析
  • 【保姆级图文详解】Spring AI 中的工具调用原理解析,工具开发:文件操作、联网搜索、网页抓取、资源下载、PDF生成、工具集中注册
  • 在 JetBrains 系列 IDE(如 IntelliJ IDEA、PyCharm 等)中如何新建一个 PlantUML 文件
  • jEasyUI 创建带复选框的树形菜单
  • NLP-迁移学习
  • 【PyMuPDF】PDF图片处理过程内存优化分析
  • RHCIA第二次综合实验:OSPF
  • 电阻抗成像肺功能测试数据分析与直方图生成
  • 攻防世界——Web题 very_easy_sql