一、前言

上篇文章构建工具之maven的应用(一)讲了对于maven配置的一些技巧,通过对maven相干的配置达到咱们想要的目标。明天这篇就讲一些对于命令行的命令技巧,通过敲命令来应用maven提供的一些性能。大狮兄想说的是明天讲的有些内容通过idea的maven插件操作同样能达到目标,但大狮兄习惯了各种敲键盘,所以明天的命令行技巧都是手敲命令的。放开双手,让它纵情的在键盘上翩翩起舞吧!

二、命令行技巧

1. 构建jar包到本地仓库命令行技巧

开发中咱们会自定义开发或批改某些jar包,同时其余工程会依赖这个jar包,为了是jar包失效,咱们须要把jar包构建到本地仓库。命令如下:

# -Dfile指定包文件门路  -DgroupId指定groupId  -DartifactId指定artifactId -Dversion指定version -Dpackaging指定包类型mvn install: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提供了一些命令可帮忙咱们疾速排查依赖问题,命令如下:

# 打印所有依赖树mvn dependency:tree# 打印依赖抵触树mvn dependency:tree -Dverbose# 将依赖抵触树导出mvn dependency:tree -Dverbose > ./dependency.txt# 指定打印某个包的依赖抵触树mvn dependency:tree -Dverbose  -Dincludes=io.netty:netty-all (指定某个包)

后果如下图:

3. 指定子模块打包命令行技巧

大型的工程必定蕴含多个模块,为了节俭打包工夫,有时咱们只须要对某个模块进行独自打包,maven如下命令能够实现:

# -pl 示意指定具体某个模块,格局{groupId}:{artifactId};# -am 示意同时解决选定模块所依赖的模块mvn clean package -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-generator

bigdata目录是父模块,boot-web子模块依赖boot-mysql子模块,boot-mysql模块依赖uid-generator子模块。此时指定boot-web模块打包,验证是否只有相干依赖的模块被打包。执行命令,后果如下图:

4. 多开发环境打包命令行技巧

工作中咱们个别会有多个环境的配置文件,例如:本地测试环境、开发测试环境、线上生产环境等,不同的环境对应的某些配置不同,导致配置文件也不雷同。打包时咱们如何让maven主动依据不同的环境打包不同的配置文件呢?步骤如下:

  • 在resource文件夹下新建多个config配置文件,如下图:

  • 在pom文件中退出如下配置:
            <profiles>        <!-- 本地测试环境 -->        <profile>            <id>loc</id>            <properties>                  <!-- 注:active标签会在config.properties中失效 -->                <active>loc</active>            </properties>        </profile>        <!-- 开发测试环境 -->        <profile>            <id>dev</id>            <properties>                  <!-- 注:active标签会在config.properties中失效 -->                <active>dev</active>            </properties>            <activation>                  <!-- 默认dev配置文件失效 即打包时会优先打dev的配置文件 -->                <activeByDefault>true</activeByDefault>            </activation>        </profile>        <!-- 线上生产环境 -->        <profile>            <id>prd</id>            <properties>                <active>prd</active>            </properties>        </profile>    </profiles>
  • 执行以下maven命令:
# -P 指定失效的环境配置文件# 验证打包是否精确可通过反编译查看config.properties文件中的profiles.active的值mvn clean package -DskipTests -P prd

三、总结

以上就是明天大狮兄和大家分享的对于Maven命令行命令相干的内容,蕴含多构建jar包到本地仓库、排除jar包版本依赖、指定子模块打包、多开发环境打包。文章观点或者论断亦或其余如有谬误,欢送大家评论或者私信进行斧正。同时如果此篇文章对大家有所帮忙,也欢送大家点赞、珍藏、关注。