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

【Maven系列】深入解析 Maven 常用命令

在这里插入图片描述

前言

  在当今的软件开发过程中,项目管理是至关重要的一环。项目管理包括了项目构建、依赖管理以及发布部署等诸多方面。而在Java生态系统中,Maven已经成为了最受欢迎的项目管理工具之一。Maven 是一套用于构建、依赖管理和项目管理的工具,主要用于 Java 项目。Maven 命令是 Maven 的核心功能之一,通过这些命令可以执行项目的构建、编译、测试、打包等操作,帮助开发者自动化构建、测试和部署Java项目。了解Maven的常用命令是使用它的关键,下面将简单介绍一些我们日常开发中经常会用到的一些 Maven 命令。

在这里插入图片描述

一、项目构建命令

命令说明
mvn clean清理目标目录(target)中的输出文件。
mvn compile编译位于 src/main/java 下的 Java 代码,生成.class文件到target目录。
mvn test-compile编译测试源代码路径(src/test/java)下的 Java 代码。
mvn test运行项目中的单元测试,编译并测试 src/test/java下的测试代码。
mvn package将编译后的代码打包成 JAR 或 WAR 文件。
mvn install将打包好的文件安装到本地仓库中,以便其他项目可以引用。
mvn site生成项目站点文档。

例如:

# 清除历史打包并重新打包
mvn clean package# 只打包不测试(跳过测试)
mvn install -Dmaven.test.skip=true# 强制检查更新后打包
mvn clean package -U

二、依赖管理命令

命令说明
mvn dependency:resolve用于解析项目的依赖关系,检查项目的依赖配置,并下载所需的依赖库到本地仓库。
mvn dependency:list查看当前项目已被解析的依赖。
mvn dependency:tree用于查看项目的依赖树,会以树状结构展示项目的所有依赖关系。
mvn dependency:analyze分析项目依赖,找出未使用的依赖和缺失的依赖。
mvn dependency:copy-dependencies将项目的依赖复制到指定目录。
mvn dependency:purge-local-repository用于清理本地仓库中的依赖库,可以删除不再需要的依赖库,从而节省磁盘空间。

三、发布部署命令

命令说明
mvn deploy用于将项目的构建结果发布到远程仓库。
它会将项目的Jar或War文件上传到Maven远程仓库,以便其他项目可以引用。
在执行这个命令之前,需要先执行mvn install命令。
mvn release:prepare用于准备项目的发布版本。
它会自动更新项目的版本号,创建一个发布分支,并将相关的版本信息提交到版本控制系统。
mvn release:perform用于执行项目的发布操作。
它会将项目的构建结果发布到Maven远程仓库,并将发布分支合并到主分支。

插件相关

命令说明
mvn plugin:help -Ddetail=true -Dgoal=goal-name显示某个插件目标的帮助信息。
mvn help:effective-pom显示当前项目的有效 POM 文件。
mvn help:describe -Dplugin=plugin-name -Dmojo=mojo-name -Dfull显示某个插件目标的详细信息。

构建生命周期

命令说明
mvn validate验证项目是否正确且所有必要信息都可用。
mvn initialize初始化构建状态,例如设置属性或创建目录。
mvn generate-sources生成源代码。
mvn process-sources处理源代码,例如过滤。
mvn generate-resources生成资源文件。
mvn process-resources复制并处理资源文件到目标目录。
mvn compile编译主源代码。
mvn process-classes处理编译后的类文件。
mvn generate-test-sources生成测试源代码。
mvn process-test-sources处理测试源代码。
mvn generate-test-resources生成测试资源文件。
mvn process-test-resources复制并处理测试资源文件到目标目录。
mvn test-compile编译测试源代码。
mvn process-test-classes处理编译后的测试类文件。
mvn test运行单元测试。
mvn prepare-package在实际打包之前进行必要的准备工作。
mvn package打包项目。
mvn pre-integration-test在集成测试前执行的操作。
mvn integration-test运行集成测试。
mvn post-integration-test在集成测试后执行的操作。
mvn verify检查集成测试的结果。
mvn install安装包到本地仓库。
mvn deploy部署包到远程仓库。

其他常用命令

命令说明
mvn archetype:generate创建一个新的 Maven 项目。
mvn eclipse:eclipse生成 Eclipse 项目的配置文件(不推荐使用,建议使用 m2eclipse 插件)。
mvn idea:idea生成 IntelliJ IDEA 项目的配置文件(不推荐使用,建议使用 IDE 自带的 Maven 支持)。
mvn release:prepare准备发布版本。
mvn release:perform执行发布操作,将发布版本部署到远程仓库。
mvn versions:display-dependency-updates显示依赖项的更新信息。
mvn versions:display-plugin-updates显示插件的更新信息。
mvn versions:update-properties更新 POM 文件中的版本属性。
mvn versions:set设置 POM 文件中的版本号。
mvn versions:commit提交版本更改。
mvn versions:revert回滚版本更改。

Mvn 命令参数

参数说明
mvn -v显示版本信息
mvn -V显示版本信息后继续执行Maven其他目标
mvn -h显示帮助信息
mvn -D传入属性参数
mvn -P使用pom中指定的配置,如有多个,用逗号隔开。
-e显示maven运行出错的信息
-o离线执行命令,即不去远程仓库更新包
-X显示maven允许的debug信息
-U强制检查更新,防止缓存等原因使用历史依赖,在自动化发布脚本中会经常用到。

总结

  这些命令可以帮助我们完成项目的编译、测试、打包、安装和部署等任务,在命令行中输入对应的命令即可执行相应的操作。例如,要编译项目,可以输入mvn compile;要打包项目,可以输入mvn package。需要注意的是,在使用这些命令之前,需要先在项目的根目录下打开命令行窗口,并确保已经正确配置了Maven的环境变量。通过这些常用操作命令的掌握,我们可以更加高效地使用Maven管理项目,提高开发效率。

  在项目中,我们可以根据具体的需求选择合适的命令来完成任务。例如,当需要快速清空项目产生的文件时,可以使用mvn clean命令;当需要打包并上传到私服时,可以使用mvn deploy命令。通过不断地实践和积累经验,我们可以更好地利用Maven的功能,为项目的顺利完成提供有力保障。

在这里插入图片描述

相关文章:

【Maven系列】深入解析 Maven 常用命令

前言 在当今的软件开发过程中,项目管理是至关重要的一环。项目管理包括了项目构建、依赖管理以及发布部署等诸多方面。而在Java生态系统中,Maven已经成为了最受欢迎的项目管理工具之一。Maven 是一套用于构建、依赖管理和项目管理的工具,主要…...

微信小程序之简单的数据中心管理平台(1)

微信小程序之简单的数据中心管理平台(1) 引言 随着微信小程序的广泛应用,越来越多的企业开始探索如何利用这一技术开发高效、便捷的管理平台。数据中心管理作为信息化建设的重要组成部分,需要一个灵活、可扩展的界面来实现资源的…...

sqlmap --os-shell的原理(MySQL,MSSQL,PostgreSQL,Oracle,SQLite)

1. MySQL 条件 数据库用户需要具备高权限(如 FILE 权限)。数据库服务运行用户需要对目标目录有写权限。Web 服务器有可写目录,且支持执行上传的脚本(如 PHP、JSP 等)。 原理 利用 MySQL 的 SELECT ... INTO OUTFIL…...

2024年认证杯SPSSPRO杯数学建模C题(第一阶段)云中的海盐解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现: 巴黎气候协定提出的目标是:在2100年前,把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平,并为1.5摄氏度而努力。但事实上,许多之前的…...

三维扫描检测在汽车制造中的应用

三维扫描,通过先进三维扫描技术获取产品和物体的形面三维数据,建立实物的三维图档,满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…...

【NoSQL数据库】Hbase基本操作——数据库表的增删改查

目录 一、Hbase原理 二、HBase数据库操作 三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型: 行键 时间戳 列族:contents 列族:anchor 列族:mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:…...

【C++】格式化输出详解:掌握 cout 的进阶用法

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯格式化输出的理论概述💯控制输出宽度和填充字符setw 操作符setfill 操作符 💯控制浮点数的显示格式fixed 与 scientificsetprecision 💯…...

设计模式学习思路二

设计模式的学习思路_设计模式必须按顺序进行吗-CSDN博客 以下是一些方法和思路可以帮助你更清晰地识别使用了哪种设计模式。 1. 确定模式时的思考步骤 以下是分析代码时,你可以遵循的一些思路和步骤,帮助你识别可能使用的设计模式: a. 识别…...

什么是等级保护

1.为什么要实施等级保护: •国家信息安全形势严峻(敌对势力),针对基础信息系统的违法犯罪持续上升(网上诈骗、入侵、网上盗窃) •维护国家安全的需求(基础信息网络【互联网、电信网、广电网】及重要信息系统【银行、铁路、电力、海关】已经成为国家的关键基础设施) •信息安全是…...

k8s api对象,CRD

在Kubernetes项目中,一个API对象在Etcd里的完整资源路径,是由:Group(API组)、Version(API版本)和Resource(API资源类型)三个部分组成 apiVersion: batch/v2alpha1 kind:…...

【C++指南】C++内存管理 深度解析

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 引言 一、C 内存管理概述 二、C内存区域划分 三、C 内存管理方式 🍃1.自动内存管理…...

C++小碗菜之二:软件单元测试

“没有测试的代码重构不能称之为重构,它仅仅是垃圾代码的到处移动” ——Corey Haines 目录 前言 什么是单元测试? 单元测试的组成 单元测试的命名 单元测试的独立性 Google Test 单元测试的环境配置与使用 1. Ubuntu下安装 Google Test 2. 编写…...

PyCharm+Selenium+Pytest配置小记

1、下载ChromeDriver: Chrome130以后的Driver下载: Chrome for Testing availabilityhttps://googlechromelabs.github.io/chrome-for-testing/ (1)查看自己Crome浏览器的版本:设置-->关于 Chrome; &…...

摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/04

Learning Roadmap: Section 1: Intro to Parallel Programming & MUSA Deep Learning Ecosystem(摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/11/30-CSDN博客)UbuntuDriverToolkitcondapytorchtorch_musa环境安装(2024/11/24-Ubunt…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Remote Communication Kit

1.问题描述: DynamicDnsRule有没有示例?这个地址是怎么解析出来 https://developer.huawei.com/consumer/cn/doc/harmonyos-references/remote-communication-rcp-0000001770911890#section8160554134811 解决方案: ‘DynamicDnsRule’&a…...

【日常记录-Mybatis】PageHelper导致语句截断

1. 简介 PageHelper是Mybatis-Plus中的一个插件,主要用于实现数据库的分页查询功能。其核心原理是将传入的页码和条数赋值给一个Page对象,并保存到本地线程ThreadLocal中,接下来,PageHelper会进入Mybatis的拦截器环节,…...

随时随地掌控数据:如何使用手机APP远程访问飞牛云NAS

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

JVM 类加载器有哪些?双亲委派机制的作用是什么?如何自定义类加载器?

类加载器分类 大家好,我是码哥,可以叫我靓仔,《Redis 高手心法》畅销书作者。 先回顾下,在 Java 中,类的初始化分为几个阶段: 加载、链接(包括验证、准备和解析)和 初始化。 而 类加载器&#x…...

从基态到激发态再到里德伯态的双光子激发过程

铯原子(Cs)从基态6S1/2到激发态6P3/2再到里德伯态44D5/2的双光子激发过程, 并通过数值计算和图形化展示来研究不同失谐条件下的拉比频率、AC Stark位移差以及散射概率的变化 结果显示,在给定的实验参数下,拉比频率较低…...

Clickhouse 外部存储引擎

文章目录 外部存储引擎分类MySQL引擎PostgreSQL引擎MongoDB引擎JDBC引擎ODBC引擎Kafka引擎RabbitMQ引擎File引擎URL引擎HDFS引擎 外部存储引擎分类 引擎类型描述特点MySQL从 MySQL 数据库中读取数据用于与 MySQL 数据库共享数据,支持读取 MySQL 表中的数据 支持 SQ…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

SpringTask-03.入门案例

一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...