关于java:构建工具之Maven的使用二

28次阅读

共计 2200 个字符,预计需要花费 6 分钟才能阅读完成。

一、前言

上篇文章构建工具之 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 包版本依赖、指定子模块打包、多开发环境打包。文章观点或者论断亦或其余如有谬误,欢送大家评论或者私信进行斧正。同时如果此篇文章对大家有所帮忙,也欢送大家点赞、珍藏、关注。

正文完
 0