Maven 的常用指令

一、核心构建指令

  1. mvn clean

    • 作用:删除 target 目录(清理编译/打包生成的文件)。

    • 场景:确保从头开始构建,避免残留文件干扰。

  2. mvn compile

    • 作用:编译项目源代码。

    • 场景:快速检查代码是否能编译通过,无需打包。

  3. mvn package

    • 作用:编译 + 运行测试 + 打包(生成 JAR/WAR 等)。

    • 场景:本地验证完整构建流程,生成可部署的包。

  4. mvn install

    • 作用:编译 + 测试 + 打包,并将构建结果安装到本地仓库。

    • 场景:本地多模块项目中,将子模块的构建结果提供给其他模块使用。

  5. mvn deploy

    • 作用:将构建结果发布到远程仓库(如 Nexus、Artifactory)。

    • 场景:将稳定版本的依赖共享给团队或持续集成环境。


二、依赖管理指令

  1. mvn dependency:tree

    • 作用:打印项目依赖树,显示所有传递性依赖。

    • 场景:分析依赖冲突(如多个版本的库冲突),快速定位问题。

  2. mvn dependency:analyze

    • 作用:检查未声明但被使用的依赖(或声明但未使用的依赖)。

    • 场景:优化 pom.xml,清理冗余依赖。

  3. mvn versions:display-dependency-updates

    • 作用:扫描依赖是否有新版本可用。

    • 场景:定期更新依赖版本,修复安全漏洞或使用新特性。


三、测试相关指令

  1. mvn test

    • 作用:运行单元测试。

    • 场景:验证代码逻辑是否符合预期。

  2. mvn test -Dtest=TestClassName

    • 作用:运行指定测试类。

    • 场景:调试单个测试用例,避免运行全部测试。

  3. mvn test -DskipTests

    • 作用:跳过测试阶段。

    • 场景:快速构建(如临时修复时不需要执行测试)。


四、调试与优化指令

  1. mvn -X

    • 作用:开启 Maven 的调试日志(显示详细执行过程)。

    • 场景:排查构建失败的具体原因。

  2. mvn -U

    • 作用:强制更新远程仓库的快照(Snapshot)依赖。

    • 场景:确保使用最新的快照版本(如依赖频繁更新的开发中库)。

  3. mvn --offline

    • 作用:离线模式(仅使用本地仓库的依赖)。

    • 场景:网络不可用时继续构建。


五、多模块项目指令

  1. mvn -pl module1,module2

    • 作用:仅构建指定的子模块(如 module1 和 module2)。

    • 场景:大型项目中快速构建部分模块,节省时间。

  2. mvn -am -pl module1

    • 作用:构建指定模块及其依赖的其他模块。

    • 场景:确保依赖的子模块已构建(如 module1 依赖 core 模块时自动构建 core)。


六、高级场景

  1. mvn help:effective-pom

    • 作用:生成合并所有父 POM 后的最终有效 POM。

    • 场景:分析实际生效的配置(如插件、依赖版本)。

  2. mvn archetype:generate

    • 作用:使用 Maven 原型(模板)创建新项目。

    • 场景:快速生成标准项目结构(如 Spring Boot、JavaFX 项目)。

  3. mvn release:prepare / mvn release:perform

    • 作用:自动化版本发布(更新版本号、打 Tag、发布到仓库)。

    • 场景:规范化的版本发布流程。


总结表格

指令典型场景
mvn clean install清理旧构建并安装到本地仓库
mvn dependency:tree分析依赖冲突或冗余依赖
mvn test -DskipTests跳过测试快速打包
mvn versions:display-dependency-updates检查依赖库是否有新版本可用
mvn -pl module1 -am构建指定模块及其依赖模块
mvn -X开启详细日志排查构建问题

通过灵活组合这些指令,可以高效完成构建、调试和发布任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

llvm数据流分析

llvm数据流分析 1.数据流分析2.LLVM实现2.1.常量传播2.2.活跃性分析 相关参考文档:DataFlowAnalysisIntro、ustc编译原理课程、南大程序分析课程1、南大程序分析课程2。 1.数据流分析 数据流分析在编译优化等程序分析任务上都有重要应用。通常数据流分析可被抽象为…

C++ MySQL 常用接口(基于 MySQL Connector/C++)

C MySQL 常用接口(基于 MySQL Connector/C) 1. 数据库连接 接口: sql::mysql::MySQL_Driver *driver; sql::Connection *con;作用: 用于创建 MySQL 连接对象。 示例: driver sql::mysql::get_mysql_driver_insta…

C++蓝桥杯基础篇(十一)

片头 嗨~小伙伴们,大家好!今天我们来学习C蓝桥杯基础篇(十一),学习类,结构体,指针相关知识,准备好了吗?咱们开始咯~ 一、类与结构体 类的定义:在C中&#x…

css中实现border距离视图左右两侧有距离

首先看效果图 再看css是如何实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.main {background-color: aqua;display: block;width: 300px;padding: 0px 32px;box-sizing: border-box;}/…

Ubuntu 22.04 无法进入图形界面的解决方法

Ubuntu 22.04 无法进入图形界面&#xff0c;只能进入 tty&#xff0c;可能是由于图形界面相关的配置或驱动程序出现了问题。以下是一些常见的解决方法&#xff1a; 1. 检查图形界面服务状态 首先&#xff0c;检查图形界面服务&#xff08;通常是 gdm 或 lightdm&#xff09;的…

Tweak Power:全方位电脑系统优化的高效工具

在日常使用电脑时&#xff0c;系统性能的下降、垃圾文件的堆积以及硬盘的老化等问题常常困扰着用户。为了提升电脑性能、优化系统运行&#xff0c;许多人会选择系统优化工具。然而&#xff0c;国内一些系统优化软件常常因为广告过多或功能冗杂而让人望而却步。此时&#xff0c;…

深入浅出Bearer Token:解析工作原理及其在Vue、Uni-app与Java中的实现Demo

目录 前言1. 基本知识2. Demo3. 实战 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 1. 基本知识 Bearer Token是一种基于Token的认证机制&#xff0c;用于在HTTP请求中传递用户的身份信息 应用于RESTful A…

kubernetes——part3-5 核心概念 Service

一、 service作用 使用kubernetes集群运行工作负载时&#xff0c;由于Pod经常处于用后即焚状态&#xff0c;Pod经常被重新生成&#xff0c;因此Pod对应的IP地址也会经常变化&#xff0c;导致无法直接访问Pod提供的服务&#xff0c;Kubernetes中使用了Service来解决这一问题&am…

从零开始 | C语言基础刷题DAY1

❤个人主页&#xff1a;折枝寄北的博客 DAY1[2025.3.11] 1. 求两个数的较大值2.从键盘输入的两个数的大小关系3.一个整数的奇偶性&#xff0c;请判断4. 考试分数是否通过5.考试成绩是否完美&#xff0c;请判断 1. 求两个数的较大值 题目&#xff1a; 写一个函数求两个整数的较…

开源模型时代的 AI 开发革命:Dify 技术深度解析

开源模型时代的AI开发革命&#xff1a;Dify技术深度解析 引言&#xff1a;AI开发的开源新纪元 在生成式AI技术突飞猛进的2025年&#xff0c;开源模型正成为推动行业创新的核心力量。据统计&#xff0c;全球超过80%的AI开发者正在使用开源模型构建应用&#xff0c;这一趋势不仅…

Dify Web 前端独立部署指南(与后端分离,独立部署)

背景:单独拆分前端出来部署,二开前后端 本文档专注于 Dify Web 前端的部署流程和配置,适用于需要将项目部署到各种环境的运维人员和开发者。 1. 环境准备 1.1 部署环境要求 Node.js >= 18.17.0Nginx 或其他Web服务器(生产环境推荐)Docker(可选,用于容器化部署)1.…

《苍穹外卖》SpringBoot后端开发项目核心知识点整理(DAY1 to DAY3)

目录 一、在本地部署并启动Nginx服务1. 解压Nginx压缩包2. 启动Nginx服务3. 验证Nginx是否启动成功&#xff1a; 二、导入接口文档1. 黑马程序员提供的YApi平台2. YApi Pro平台3. 推荐工具&#xff1a;Apifox 三、Swagger1. 常用注解1.1 Api与ApiModel1.2 ApiModelProperty与Ap…

大数据hadoop课程笔记

1.课程导入 柯洁 Alpha Go是人工智能领域的里程碑。 深度学习 大模型deepseek chatgpt 大模型 和 大数据 之间有着非常紧密的关系。可以说&#xff0c;大数据是大模型发展的基石&#xff0c;而大模型是大数据价值挖掘的重要工具。 https://youtu.be/nN-VacxHUH8?sifj7Ltk…

架构学习第八周--Kubernetes博客搭建

目录 一、整体架构 二、部署MySQL主从 三、部署Redis哨兵 四、部署WordPress 五、注意事项 一、整体架构 本项目为在一主三从的Kubernetes集群上部署WordPress博客。因为WordPress部分容器版本自行集成Apache和PHP服务&#xff0c;因此在Kubernetes上部署WordPress只需提供…

Application.OnTime如何引用带参数的过程

Application.OnTime方法本身并不直接支持传递参数给被调用的过程。不过&#xff0c;有几种方法可以间接实现这个需求。 方法1&#xff1a;使用单引号表达式 使用单引号表达式来传递参数时&#xff0c;不能在表达式中使用变量&#xff0c;需要把参数值直接写到表达中&am…

网络安全之tcpdump工具

引言 wireshark是一款非常不错的抓包软件&#xff0c;在图形化界面占绝对统治地位&#xff1b;尽管其在字符界面下有些许选项可供使用&#xff0c;但终究不太方便&#xff0c;下面我再介绍一款NB的终端抓包工具 tcpdump 1、混杂模式 linux的网卡有混杂模式一说&#xff0c;当开…

VC++ 获取目的IP的路由

GetBestRoute 函数获取到目的IP的最佳匹配路由。 第一个参数为&#xff1a;destination&#xff08;目的IP&#xff09; 第二个参数为&#xff1a;source&#xff08;源IP&#xff09; 通常不需要指定第二个source&#xff0c;这个一般用来匹配具体某一个网卡接口路由的&…

JavaScript 模块 vs C# 类:封装逻辑的两种哲学

引言 在现代软件开发中&#xff0c;模块化和面向对象设计是代码组织的核心课题。本文通过对比 JavaScript 模块&#xff08;ES6 Module&#xff09;与 C# 类&#xff08;Class&#xff09;的实现方式&#xff0c;探讨两种语言在封装逻辑时的不同哲学&#xff0c;并给出实际应用…

大模型在甲状腺癌诊疗全流程预测及方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 国内外研究现状 二、大模型预测甲状腺癌的理论基础 2.1 甲状腺癌相关医学知识 2.2 大模型技术原理与特点 2.3 大模型在医疗领域的应用潜力 三、术前预测方案 3.1 预测模型构建 3.1.1 数据收集与预处理 …

electron+vue+webview内嵌网页并注入js

vue内嵌网页可以使用iframe实现内嵌网页&#xff0c;但是只能通过postMessage间接通信&#xff0c;在electron环境下&#xff0c;vue可以直接使用webview来内嵌网页&#xff0c;支持 executeJavaScript、postMessage、send 等丰富的通信机制。 使用 webview的优势 性能更佳&…