千家信息网

Jenkins持续集成——参数化构建

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,一、String Parameter由于每次构建的时候指定的SVN路径都不同,如果不使用参数化构建则每次都需要修改配置中的SVN路径,不但不安全也容易出现错误。将SVN地址设置为字符串参数(strin
千家信息网最后更新 2026年11月02日Jenkins持续集成——参数化构建

一、String Parameter

由于每次构建的时候指定的SVN路径都不同,如果不使用参数化构建则每次都需要修改配置中的SVN路径,不但不安全也容易出现错误。

将SVN地址设置为字符串参数(string parameter),当开始构建的时候将会提示用户输入参数值(即:SVN地址)

在SVN中引用参数

另外,如果需要自动拉取SVN的tag或git的branch可以使用"List Subversion tags(and more)"和"Git Parameter Plug-In"这两个插件,将会自动在所填的SVN/git地址下列出子目录,有兴趣的朋友可以自己研究一下。

当执行构建时,将会弹出页面等待用户输入参数值完成构建

二、Choice

由于之前未对tomcat的状态检测做参数化构建,故每个模块都需要一个对应的job用于检测,最终将会导致所创建的job数量太大,不但增加了工作量,而且也容易出错。

以下将通过参数化构建将其合并为一个Tomcat_check的job。

合并前:

合并后:

勾选配置参数化构建过程(选择"Chice"并定义参数名为Module,Choices的值根据自己的情况填写需要的选项)

构建过程(执行check.sh脚本并引用参数Module)

触发邮件步骤略(将会在邮件插件中详细介绍)


以下附上检测tomcat的脚本(仅供参考)

Tomcat_check检测脚本

  • 定义check函数用于检测tomcat是否启动正常functions

#定义失败后重试次数ATTEMPTS=12FAILED=0#定义将会输出版本号的日志(可用于发送邮件)file=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/check#jenkins构建时生成的日志,用于追加日志输出到jenkins控制台log=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/logcheck(){    echo \ `date` >> $file    #当调用check函数带参数时才执行    while [ $# != 0 ]    do        IP=`echo $1 | awk -F "/" '{print $3}' |awk -F ':' '{print $1}'`        ver=`curl -skf -m 1 $1 |grep -i "v" |head -1|dos2unix`        curl -skf -m 1 $1 > /dev/null        #当curl检测URL返回正常时往$file记录IP和版本号并往jenkins控制台输出"$1 is OK"(shift用于向左移动一位参数)        if [ $? -eq 0 ];then            echo \ \$IP\<\/a\> ++ $ver >> $file            echo $1 is OK! >> $log            FAILED=0            shift            continue        else            #当curl检测URL返回异常则等待10秒后重试            FAILED=$(($FAILED + 1))            TIMES=$(($ATTEMPTS - $FAILED + 1))            echo "Waiting for check the web-$1, retrying in 10 seconds for $TIMES times..." >> $log            sleep 10            if [ $ATTEMPTS -gt $FAILED ];then                continue            else                echo "Failed to check the web-$1" >> $log            fi            #若重试指定次数后仍然失败则将版本号记录为ERROR,且字体设为红色            echo \ \$IP\<\/a\> ++ \Error\<\/font\> >> $file            FAILED=0            shift            continue        fi    done}
#引入参数用于指定需要检测的模块(即参数化构建中的Module)Module=$1#引用functions中的check函数. /data/ztjy/functionsargs=`cat /data/ztjy/$Module/url`check $args#提取新版本号(相对其他版本而已)Maxver=`awk -F "+" '{print $3}' $file | grep -i v | sort |tail -1`#提取旧版本号Minver=`awk -F "+" '{print $3}' $file | grep -i v | sort |head -1`#如果是新版本号则改版本号字体显示为橙色sed -i "s/$Maxver/ $Maxver<\/font>/g" $file#如果是旧版本号则改版本号字体显示为绿色sed -i "s/$Minver/ $Minver<\/font>/g" $file


由上面可见检测后将自动触发邮件通知,邮件内容如下:



参数 检测 版本 邮件 函数 脚本 地址 字体 日志 输出 控制台 插件 时候 模块 次数 用户 路径 过程 控制 输入 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 河南云网互联网络科技有限公司 为想互联网科技怎么样 科技互联网公司装修 互联网科技网站 科技大学互联网专业好不好 安控科技rtu产品工业互联网 科技与互联网的利与弊 科技互联网的估值 阿里巴巴算科技企业还是互联网 996高科技互联网公司 深圳互联网科技的发展 中天科技中国工业互联网 厦门江牛科技互联网 下一代互联网重大应用科技园 上海乐五互联网科技有限公司 艺电能源互联网科技有限公司招聘 长沙渺峰互联网科技有限公司 北京天晋互联网科技有限公司 宁波允成互联网科技有限公司 互联网科技开发公司 上海互联网科技有限公司 汇久创客互联网科技 融贸通互联网科技 天下捷融互联网科技 福建科技产业互联网发展 岳阳华臻互联网科技有限公司 互联网科技如何创业 雨阳互联网卡科技有限公司 互联网领先科技活动
0