Java maven构建命令使用总结

maven构建命令


mvn [选项] [<goal(s)>] [<phase(s)>]

常用选项:

-f,--file <arg> 强制使用指定的POM文件

-U,--update-snapshots 强制检查缺少的release版和远程仓库已更新snapshots版(Forces a check for missing releases and updated snapshots on remote repositories)。个人理解:

  • 如果构建依赖的release版软件包在本地仓库不存在,则强制从远程仓库下载最新release版依赖包,否则不下载,使用本地仓库已有的release版依赖包

  • 不管构建依赖的snapshots版软件包在本地仓库是否存在,都强制检查远程仓库对应版本的软件包是否存在更新,如果存在则下载更新。

-N,--non-recursive 不递归到子项目(子模块)。

说明:多个goalphase之间使用空格分隔。

示例:

mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true install

常用内置phase介绍

clean 删除前一次构建生成的文件,包括classes目录中的.class文件,但不会删除classesgenerated-sourcesmaven-status目录。

compile 编译项目源代码,会生成.class文件和对应软件包,注意:*.class以及软件包(比如*.jar)不存在,或者源代码有变动的情况下,执行编译,才会重新生成*.class及对应软件包,packageinstalldeploy等皆如此。

test 使用合适的单元测试框架(默认为Junit)运行测试。这些测试不应要求打包或部署代码。可使用-Dmaven.test.skip=true-DskipTests参数跳过测试。这两者的区别在于:

  • -DskipTests 不执行测试用例,但编译测试用例类生成相应的.class文件到target/test-classes下。

  • -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。

package 获取编译后的代码,并将其打包为可分发的格式,例如jar

install 将打包的软件包安装至本地仓库,为本地其它项目提供依赖。实践表名,执行install命令,可能会生成在compile阶段未生成的软件包。

deploy 在集成或发布环境中完成,将最终软件包复制到远程存仓库,以便与其他开发人员和项目共享。

注意:

1、phase之间,phasegoal之间是有顺序区分的,按从左到右的顺序执行,如下两个命令,看似相同,执行效果是不一样的。

mvn clean install # 先执行clean,再执行install

mvn install clean # 先执行install,再执行clean

2、maven执行某个phase之前,会优按顺序执行该phase所属生命周期内,位于其之前的所有phase,比如执行默认生命周期的install,会优先执行validate —> compile -> test -> package -> verify(假设未使用其它会跳过phase的选项参数)

插件目标应用举例

sonar扫描

mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true compile org.jacoco:jacoco-maven-plugin:prepare-agent sonar:sonar

问题:这里为啥需要用org.jacoco:jacoco-maven-plugin:prepare-agent插件目标呢?

答案:因为仅靠SonarQube本身是不知道实际上执行了哪些测试以及它们如何覆盖代码的,要获取此信息,它依赖于第三方测试覆盖率工具,对于Java,它依赖于JaCoCo收集和提供的数据

关于父POM构建

最后

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

**再分享一波我的Java面试真题+视频学习详解+

必看视频!获取2024年最新Java开发全套学习资料 备注Java

技能进阶书籍**

美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

img.cn/img_convert/d03a705143646f4f3f6ea879d59b2788.png)(title-必看视频!获取2024年最新Java开发全套学习资料 备注Java)]

技能进阶书籍**

[外链图片转存中…(img-SUNMlU3J-1716446158436)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值