一、前言上一篇maven作为构建工具的使用(一)讲了maven配置的一些技巧,通过maven相关的配置达到了我们想要的目的.今天的文章会讲一些关于命令行的命令技巧,通过敲命令的方式来使用maven提供的一些功能。大石哥想说的是,今天讨论的一些内容也可以通过idea的maven插件的运行来实现,但是大石哥习惯敲键盘,所以今天的命令行技巧都是手敲命令.放开你的手,让它在键盘上尽情地舞动吧!二、命令行技巧1、构建jar包到本地仓库命令行技巧开发我们会自定义开发或者修改一些jar包,其他项目都会依赖这个jar包。为了让jar包生效,我们需要将jar包Build到本地仓库。命令如下:#-Dfile指定包文件路径-DgroupId指定groupId-DartifactId指定artifactId-Dversion指定版本-Dpackaging指定包类型mvninstall:install-file-Dfile=/Users/lsl_mac/IdeaProject/flink_demo/target/flink_demo-1.0.jar-DgroupId=org.bigwinner-DartifactId=flink_demo-Dversion=1.0-Dpackaging=jar效果如下:2.消除依赖版本冲突在开发命令行技巧的过程中,我们经常遇到依赖版本冲突导致程序出错的问题,maven提供了一些命令帮助我们快速排查依赖问题。命令如下:#打印所有依赖树mvndependency:tree#打印依赖冲突树mvndependency:tree-Dverbose#导出依赖冲突树mvndependency:tree-Dverbose>./dependency.txt#指定打印依赖冲突某包的树mvndependency:tree-Dverbose-Dincludes=io.netty:netty-all(指定某包)结果如下图:3.指定子模块打包命令行技巧Large项目必须包含多个模块。为了节省打包时间,有时我们只需要单独打包某个模块即可。maven下面的命令可以实现:#-pl表示指定一个特定的模块,格式为{groupId}:{artifactId};#-am表示同时处理所选模块所依赖的模块mvncleanpackage-pl{groupId}:{artifactId}-am-Dmaven.test.skip=true验证如下:bigdata├──HELP.md├──README.md├──bigdata.iml├──boot-codegen├──boot-core├──boot-hbase├──boot-kafka├──boot-mysql├──boot-pulsar├──boot-web├───mvnw├──mvnw.cmd├──pom.xml└──uid-generatorbigdata目录是父模块,boot-web子模块依赖boot-mysql子模块,boot-mysql模块依赖uid-generator子模块。此时指定要打包的boot-web模块,验证是否只打包了相关的依赖模块。执行命令,结果如下图所示:4.多开发环境打包命令行技巧我们一般会有多个环境配置文件,比如:本地测试环境、开发测试环境、线上生产环境等,对应不同的环境有些配置不同,导致配置文件不同。怎样才能让maven在打包的时候根据不同的环境自动打包不同的配置文件呢?步骤如下:在resource文件夹下创建多个config配置文件,如下图:在pom文件中添加如下配置:
