说一说 Maven 常用的命令

简介: 我是小假 期待与你的下一次相遇 ~

Maven项目目录结构

—P(父工程pom)

— A (子工程 - common)

— B (子工程 - biz 依赖common)

— C (子工程 - Web 依赖B、间接依赖A)

一、Maven 命令参数

-D 传入属性参数

-P 使用pom中指定的配置

-e 显示maven运行出错的信息

-o 离线执行命令,即不去远程仓库更新包

-X 显示maven允许的debug信息

-U 强制去远程参考更新snapshot包

例如 mvn install -Dmaven.test.skip=true -Poracle

其他参数可以通过mvn help 获取

二、Maven常用命令

1、mvn clean (清理项目生产的临时文件,一般是模块下的target目录)

清理项目生产的临时文件,一般是模块下的target目录

2、mvn package (项目打包工具,会在模块下的target目录生成jar或war等文件)

项目打包工具,会在模块下的target目录生成jar或war等文件

3、mvn test (测试命令,或执行src/test/java/下junit的测试用例)

测试命令,或执行src/test/java/下junit的测试用例

4、mvn install (安装到本地Maven仓库)

模块安装命令 将打包的的jar/war文件复制到本地仓库中,供其他模块使用 -Dmaven.test.skip=true 跳过测试(同时会跳过test compile)

5、mvn install -X (追踪依赖的完整轨迹)

追踪依赖的完整轨迹

6、mvn deploy (发布命令 将打包的文件发布到远程仓库)

发布命令 将打包的文件发布到远程仓库

7、mvn dependency:analyze (分析依赖关系,用来分析出无用,重复依赖)

分析依赖关系,用来分析出无用,重复依赖

8、mvn dependency:tree (打印出项目的整个依赖树)

打印出项目的整个依赖树

9、mvn dependency:resolve (查看依赖)

查看依赖

10、mvn project-info-reports:dependencies (生成项目依赖的报表)

生成项目依赖的报表

三、其他命令

下载源码

  1. mvn dependency:sources

下载源码及文档

  1. mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true

安装本地jar

  1. mvn install:install-file -Dfile=you.jar -DgroupId=org.csource.fastdfs -DartifactId=fastdfs -Dversion=1.25 -Dpackaging=jar

-Dfile:本地jar包位置(未安装至本地仓库前的jar包文件位置路径)

-DgroupId:项目名 对应 <groupId>com.jacob</groupId>

-DartifactId:文件名 对应 <artifactId>jacob</artifactId>

-Dversion:版本号 对应 <version>1.18</version> :::danger 注意:执行该命令时需要将Maven的bin目录配置在环境变量。

在PowerShell执行会报错;

在CMD命令窗口执行时使用jar包文件的绝对路径,在任何位置执行都可以,不会有报错。

:::

安装到仓库,跳过测试,跳过文档

  1. mvn install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true

把依赖的jar copy到lib目录

  1. mvn dependency:copy-dependencies -DoutputDirectory=lib

打包时跳过测试

  1. mvn package -DskipTests

SpringBoot项目打包命令

  1. mvn clean package -Dmaven.test.skip=true

四、Maven命令分类整理

构建打包类命令

编译源代码

  1. mvn compile

编译测试代码

  1. mvn test-compile

编译测试代码

  1. mvn test

打包项目

  1. mvn package

清除打包的项目

  1. mvn clean

package、install、deploy等命令常与该命令配合使用。

清除历史打包并重新打包

  1. mvn clean package

最常用的命令之一。

清除并install到本地

  1. mvn clean install

查看当前项目已被解析的依赖

  1. mvn dependency:list

常用于Jar包依赖冲突排查等。

上传到私服

  1. mvn deploy

复杂组合命令

强制检查更新后打包

  1. mvn clean package -U

-U参数,强制检查更新,防止缓存等原因使用历史依赖,在自动化发布脚本中会经常用到。

打包排除单元测试

  1. mvn clean package -Dmaven.test.skip=true

打包并指定环境

  1. mvn clean package -P test

test为maven中配置的不同打包环境名称。

打包指定子项目和父项目

  1. mvn clean install -pl C -am -Dmaven.test.skip=true

说明:对父工程P、子模块C、以及子模块C依赖的B、A模块执行mvn clean install操作,涉及到的P、A、B、C模块全部install到本地。

在自动化构建时,通常会用到该组命令,对于基础板块可将install命令换成deploy命令,发布到私服中。

只打包父工程

  1. mvn clean install -N

只打包父工程P,子模块不会执行相关操作。有父子关系的项目构建上传到私服时,往往需要先构建上传父项目(pom项目)。

只打包A工程

  1. mvn clean install -pl A -am

由于A工程不依赖其他模块,因此仅对P和A进行mvn clean install操作。

被依赖项目打包

  1. mvn clean install -pl A -amd

对父工程P、子模块A以及依赖于A模块的B、C模块执行mvn clean install操作。使用场景:基础的common模块变更了,通过该命令将依赖common的其他模块也进行重新mvn clean install操作。

Jar包发布

  1. mvn clean deploy -Dmaven.test.skip=true

上述命令可以对jar包进行打包发布到仓库,同时需要在pom.xml中通过distributionManagement元素配置要发布的私有仓库地址信息。私有仓库的密码等信息在setting.xml文件中配置。

打包指定setting.xml文件

  1. mvn clean package -s settings.xml

万能的命令

最后,还有一个万能的命令,help命令:

mvn -helpmvn -h

通过此命令可以查看更多Maven支持的命令操作。

五、IDEA中Maven操作

在IDEA中Maven的一些操作技巧与功能。

1、通过Terminal执行命令

打开IDEA的Terminal命令窗口,默认是打开当前项目的根目录,可以直接执行mvn命令。也可通过cd等命令切换目录进行执行。

该方式的优势是比IDE自动解析、下载jar包依赖要快非常多,而且不容易出现下载一半卡死的状况。

2、Maven图形界面执行

可通过IDEA提供的Maven图形界面执行:

双击对应的命令即可执行。左上角的两个圆圈可以进行jar包依赖的刷新。

禁用单元测试

在执行打包构建时如果不需要执行单元测试,可选择闪电符号。

alt或command选择多个命令同时执行:


相关文章
|
5月前
|
SQL 前端开发 Java
【分层架构】Spring MVC三层架构 / DDD领域驱动四层架构 / 微服务分布式架构(DAO/Mapper/Repository/Service/Controller/Manager)
本文系统解析Java企业级分层架构(Controller/Service/Manager/Repository/DAO/Mapper),阐明各层职责边界、设计原则与典型误区,强调单一职责、依赖倒置、关注点分离等核心思想,助力构建高内聚、低耦合、易维护的可扩展系统。
1503 11
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
66308 2
|
4月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
48796 72
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
9月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
58686 11
|
开发者
HarmonyOS NEXT 实战系列09-生命周期
页面与组件生命周期介绍:页面生命周期(@Entry装饰)包含onPageShow、onPageHide、onBackPress等接口,分别在页面显示、隐藏和返回按钮点击时触发;组件生命周期(@Component装饰)包含aboutToAppear和aboutToDisappear,在组件创建与销毁时回调。示例代码展示了生命周期函数的使用场景及执行时机,帮助开发者更好地管理页面和组件状态。
HarmonyOS NEXT 实战系列09-生命周期
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
36605 1
|
Java 数据库连接 Spring
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
这个错误通常出现在使用Spring Boot进行数据库连接时。错误信息表明Spring Boot未能配置一个DataSource,因为没有指定'url'属性,并且没有发现默认的数据库连接。
6332 0
|
存储 缓存 安全
大厂面试高频:ConcurrentHashMap 的实现原理( 超详细 )
本文详细解析ConcurrentHashMap的实现原理,大厂高频面试,必知必备。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:ConcurrentHashMap 的实现原理( 超详细 )
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
14136 4
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧