Maven的几个黑科技命令,你知道吗
背景
最近在基于Maven构建自动化发布流水线,发现当项目多、项目之间依赖多时,了解Maven的命令使用,真是如虎添翼。特为大家整理了一套Maven常见命令及使用小技巧。建议收藏,甚至打印出来放在办公桌以备快速使用。
废话不多说,直接上干货。
Maven常见命令使用
项目目录结构:
--P(父工程pom)
-- A (子工程 - common)
-- B (子工程 - biz 依赖common)
-- C (子工程 - Web 依赖B、间接依赖A)
创建类命令
创建普通Maven项目
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
创建之后,可以用IDE进行项目导入。
创建Web Maven项目
mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp
创建之后,可以用IDE进行项目导入。
发布第三方Jar到本地库中
mvn install:install-file -DgroupId=xxx.xx.xxxx -DartifactId=xxx -Dversion=0.0.1 -Dpackaging=jar -Dfile=路径/xxx-0.0.1.jar
构建打包类命令
编译源代码
mvn compile
编译测试代码
mvn test-compile
编译测试代码
mvn test
mvn package
清除打包的项目
mvn clean
package、install、deploy等命令常与该命令配合使用。
清除历史打包并重新打包
mvn clean package
最常用的命令之一。
清除并install到本地
mvn clean install
查看当前项目已被解析的依赖
mvn dependency:list
常用于Jar包依赖冲突排查等。
上传到私服
mvn deploy
复杂组合命令
强制检查更新后打包
mvn clean package -U
-U参数,强制检查更新,防止缓存等原因使用历史依赖,在自动化发布脚本中会经常用到。
打包排除单元测试
mvn clean package -Dmaven.test.skip=true
打包并指定环境
mvn clean package -P test
test为maven中配置的不同打包环境名称。
打包指定子项目和父项目
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命令,发布到私服中。
只打包父工程
mvn clean install -N
只打包父工程P,子模块不会执行相关操作。有父子关系的项目构建上传到私服时,往往需要先构建上传父项目(pom项目)。
只打包A工程
mvn clean install -pl A -am
由于A工程不依赖其他模块,因此仅对P和A进行mvn clean install操作。
被依赖项目打包
mvn clean install -pl A -amd
对父工程P、子模块A以及依赖于A模块的B、C模块执行mvn clean install操作。使用场景:基础的common模块变更了,通过该命令将依赖common的其他模块也进行重新mvn clean install操作。
Jar包发布
mvn clean deploy -Dmaven.test.skip=true
上述命令可以对jar包进行打包发布到仓库,同时需要在pom.xml中通过distributionManagement元素配置要发布的私有仓库地址信息。私有仓库的密码等信息在setting.xml文件中配置。
打包指定setting.xml文件
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选择多个命令同时执行:
小结
本文将使用Maven时常见的命令及操作进行了整理,希望能够为大家提供帮助。当然,如果你有其他的黑科技命令,也可以互动交流。
文章转载自公众号:程序员新视界
已于2022-9-9 15:03:02修改
收藏
回复
删除帖子
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源
去关联
添加资源
相关推荐
-
关于那款HarmonyOS应用开发IDE,
你
或许想
知道
这些
少于5个字
• 9745浏览
• 2回复
-
Android开发热门前沿知识
你
知道吗
?学会这些2020就不用愁了
feiry
• 5074浏览
• 0回复
-
HarmonyOS分布式任务调度开发之--
你
必须
知道
的
bundleName
软通夏德旺
• 1.5w浏览
• 5回复
-
这
几个
CSS概念
你
了解
吗
?
footballboy
• 6130浏览
• 0回复
-
鸿蒙OS公测名单更新,支持众多机型升级,报名方法
你
知道吗
?
蓝初柳
• 5488浏览
• 0回复
-
HDC2021技术分论坛:盘点分布式软总线数据传输技术中
的
黑
科技
HarmonyOS开发者
• 7095浏览
• 0回复
-
#星光计划2.0#
你
知道
华为:怎么对‘应用软件’进行分类
的
吗
?
李皓6222
• 5745浏览
• 0回复
-
5种高大上
的
yml文件读取方式,
你
知道吗
?
码农参上
• 6302浏览
• 0回复
-
不吹不
黑
OpenHarmony会是一个伟大
的
操作系统
吗
连志安
• 8740浏览
• 4回复
-
你
真的
知道
怎么学习操作系统
吗
?
唐佐林
• 1.0w浏览
• 47回复
-
你想
知道
什么是云原生
的
数据库治理之道
吗
?
立垚Maxwell
• 6722浏览
• 21回复
-
DevEco Studio
的
这些预览能力
你
都
知道吗
?
OpenHarmony开发者
• 3218浏览
• 0回复
-
你
知道
Redis 服务器接收到一条
命令
是如何执行
的
吗
?
d_hero
• 1112浏览
• 0回复
-
Elasticsearch 删除重复文档实现方式,
你
知道
几个
?
ywz888
• 1605浏览
• 0回复
-
面试加分项-HashMap源码中这些常量设计目的
你
知道吗
我欲只争朝夕
• 1126浏览
• 0回复
-
你
知道
什么是 SpringBoot
的
Web 类型推断
吗
?
skyyoung
• 815浏览
• 0回复
-
你
知道
什么是 @Component 注解
的
派生性
吗
?
lzhlzh263
• 810浏览
• 0回复
-
Java 中
的
接口还可以这样用,
你
知道吗
?
maxdl
• 869浏览
• 0回复
-
Java 8
的
Stream流那么强大,
你
知道
它
的
原理
吗
?
老老老JR老北
• 159浏览
• 0回复
帖子
视频
相关问题