说一说 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 -help 或 mvn -h

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

五、IDEA中Maven操作

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

1、通过Terminal执行命令

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

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

2、Maven图形界面执行

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

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

禁用单元测试

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

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


相关文章
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
74886 2
|
JavaScript 应用服务中间件 图形学
基于Threejs实现glb三维模型的预览
文章将重点介绍如何基于Threejs进行三维模型glb进行预览,可以旋转控制。
2093 0
基于Threejs实现glb三维模型的预览
|
6月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
51879 73
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
XML 缓存 Java
Spring AOP 的三种使用方式(万字长文)
前言 Spring AOP 作为 Spring Framework 的核心模块,对 Spring IOC 加以补充,Spring 内部使用它提供了企业级的服务,如事务、异步、缓存等,同时它也允许用户自定义 Aspect,以便用 AOP 补充对 OOP 的使用。通常情况下,我们会通过 AspectJ 的注解来使用 Spring AOP,那么 Spring 一共提供了哪些使用 AOP 的方式呢?本篇将对其总结,并尝试了解 Spring AOP 的内部实现。
590 0
Spring AOP 的三种使用方式(万字长文)
|
11月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
61520 11
|
Java 数据库连接 Spring
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
这个错误通常出现在使用Spring Boot进行数据库连接时。错误信息表明Spring Boot未能配置一个DataSource,因为没有指定'url'属性,并且没有发现默认的数据库连接。
6428 0
|
安全 Java 数据库
给大忙人写的单例模式的八种实现方法
给大忙人写的单例模式的八种实现方法
350 0
|
存储 缓存 安全
大厂面试高频:ConcurrentHashMap 的实现原理( 超详细 )
本文详细解析ConcurrentHashMap的实现原理,大厂高频面试,必知必备。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:ConcurrentHashMap 的实现原理( 超详细 )
|
消息中间件 数据可视化 RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
3951 4

热门文章

最新文章