Jenkins/Gitlab/Sonarqube等DevOpsJenkins 中文社区

Jenkins 构建springcloud 微服务项目

2020-04-09  本文已影响0人  walker86

背景

目前大部分开发团队采用 Springcloud 等微服务框架,在 Git 仓库中会分多个模块文件夹,但是实际开发测试过程中,我们并不需要全量更新,
只需编译相应的服务及依赖模块即可,目前各团队在 Jenkins 上的构建 job 大部分都是一个服务/模块创建一个构建 job,看起来非常的庞杂和臃
肿,这里介绍如何结合参数化构建实现只编译打包制定的模块文件夹。

环境准备

安装 Extended Choice Parameter , 目前公用Jenkins上已安装好,此步骤可忽略

Jenkins配置

启用参数化构建

第一步:启动参数化构建
第二步:选择 Extended Choice Parameter ,如下图

image.png
参数化配置

按如下图片设置各参数的细节

image.png
编写 Shell

按如下图片设置各参数的细节
其中,Shell 脚本的变量 WORKSPACE 就是指的工作区目录,也是制定到拉取git仓库后的目录
变量 module_name 是 上一步配置的那个参数名称
这里因为是多选项, ${module_name }输出是 ratel-common,ratel-service-righ t这种形式,所以要做一下格式化处理,这里用的是
awk 切割 ,各位同学也可以像其他办法单独取出模块名
此外,Maven执行的命令最好使用绝对路径,使用系统环境变量有可能会找不到

image.png

相关 Shell 脚本如下:

echo ${module_name}| awk -F',' -v OFS='\n' '{var=$1;$1=var;print $0}'> 1.
txt
while read line
do
cd ${WORKSPACE}/${line}
/app/maven/bin/mvn clean install -Dmaven.test.skip
echo "${line} "
done<1.txt

查看效果

查看效果如下,参数化构建选择界面已产生


image.png

控制台查看输出


image.png image.png

可以看出,想要的效果已经实现了。

上一篇下一篇

猜你喜欢

热点阅读