多模块的springboot项目发布指定模块的脚本方式
作者:左直拳
该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本,只使用`mvn clean install`命令,可以快速发布指定模块及其依赖的模块
多模块的springboot项目发布指定模块的脚本
我有一个多模块的Spring Boot项目,里面有基础模块,有业务模块,业务模块依赖一些基础模块。发布的时候,如果单独将某个模块发布,一般会报错。
所以我都是整个项目,无论多少个模块,不管3721,全部发布一遍。
这样做成功是成功了,但时间比较长,要几分钟才能发布完。
次数一多,浪费的时间就很可观了。
1、不计成本地全部发布
其实问题主要是出在我发布的脚本上。
我原先的发布脚本是这样的,写在一个批处理文件里(该文件在项目的根目录下):
mvn clean install mvn clean package -Dmaven.test.skip=true -Ppro
运行的结果就是全部模块都发布了一遍。
这个脚本我也不知道是从哪里抄过来的,总之就是抄过来的,我并不理解。
问了AI之后才知道,其实这两句都是发布的,没必要两句都用。其中,
1)mvn clean install
先清理旧的构建产物,然后编译、测试、打包项目,并将打包好的文件安装到本地Maven仓库。
2)mvn clean package -Dmaven.test.skip=true -Ppro
清理旧的构建产物,编译项目并跳过测试,打包项目为归档文件,并使用名为 pro 的Profile进行构建。
简单来说,这两句都是全部模块都发布,而且第一句最猛,不单止发布,还要打包到本地的仓库里。
2、指定模块发布
以下是一个指定发布模块,同时模块依赖的模块也一并发布。
当当当:
mvn clean package -pl projectservers/bullshit-warning-server -am -Dmaven.test.skip=true -Ppro
这条命令的完整含义是:
- 清理旧的构建产物(clean)。
- 编译并打包 projectservers/bullshit-warning-server 模块(package),并且跳过测试(-Dmaven.test.skip=true)。
- 同时构建该模块所依赖的所有模块(-am)。 使用名为 pro 的Profile进行构建(-Ppro)。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。