当前位置: 首页 > 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.lryc.cn/news/587011.html

相关文章:

  • Java结构型模式---外观模式
  • 扩散模型(Diffusion Model)原理概述
  • Python装饰器(自定义装饰器和3个内置装饰器)
  • Java 大视界 -- Java 大数据在智能教育学习资源智能分类与标签优化中的应用(346)
  • Java小白-线程 vs 虚拟线程,Java并发的新旧对决
  • 垃圾收集器-Serial Old
  • 教程:如何查看浏览器扩展程序的源码
  • 【操作系统-Day 5】通往内核的唯一桥梁:系统调用 (System Call)
  • 飞算 JavaAI 智能编程助手:颠覆编程旧模式,重构开发生态
  • 【Linux | 网络】应用层
  • 算法学习笔记:19.牛顿迭代法——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • 在 Spring Boot 中使用 MyBatis 的 XML 文件编写 SQL 语句详解
  • 飞算JavaAI:开启 Java 开发 “人机协作” 新纪元
  • [Linux入门 ] RAID存储技术概述
  • [Dify]-基础入门6-Dify 的工作流 (Workflow) 详解(入门篇)
  • [Rust 基础课程]Hello World
  • Linux进程状态实战指南:转换关系、监控命令与状态解析
  • 二叉树算法详解和C++代码示例
  • Docker 快速上手
  • 深入理解 Linux 文件系统层级结构
  • 【Docker基础】Dockerfile指令速览:文件与目录操作指令详解
  • 【论文阅读】AdaptThink: Reasoning Models Can Learn When to Think
  • 系统思考:系统性抛弃
  • 深入解析Hadoop RPC:技术细节与推广应用
  • 【C++】优先队列简介与模拟实现 + 仿函数
  • 谷歌在软件工程领域应用AI的进展与未来展望
  • day5--上传视频
  • h() 函数
  • 现代Web开发实践:从零到全栈的高效率攻略
  • JAVA 反射总结