You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Jenkins Job中配置参数化构建并传递参数至构建脚本?

Jenkins参数化构建配置指南(解决你的参数传递问题)

我来帮你搞定这个Jenkins参数化构建的配置,之前你用$Parameter没成功大概率是参数命名或引用格式不对,按下面的步骤来绝对没问题:

一、配置Job的参数化构建

  1. 打开你的Jenkins Job配置页面,找到General区域,勾选「This project is parameterized」(开启参数化构建)
  2. 添加第一个参数(入口点):
    • 选择「Choice Parameter」(下拉选择类型)
    • 名称:填ENTRY_POINT(这个名字要和后面脚本里的变量严格对应,大小写敏感)
    • 描述:可以写「选择构建入口点,默认E1」
    • Choices:分行输入选项:
      E1
      E2
      
    • 默认值:直接把E1放在Choices的第一行,或者在默认值输入框填E1即可
  3. 添加第二个参数(协议):
    • 同样选「Choice Parameter」
    • 名称:填PROTOCOL
    • 描述:写「选择构建协议,默认全部」
    • Choices:分行输入(把「全部」放在第一行设为默认):
      全部
      ABC
      DEF
      
    • 默认值:选「全部」即可

二、修改构建脚本(关键!)

Jenkins里引用参数的格式是${参数名}(Linux/macOS的Shell环境),如果是Windows则用%参数名%。根据你的需求,调整构建脚本如下:

场景1:选「全部」时,执行E1+ABC、E2+DEF;选单个协议时,配合选中的入口点执行

cd ${WORKSPACE}/myworkSpace

# 根据协议参数判断执行逻辑
if [ "${PROTOCOL}" = "全部" ]; then
    # 全部协议场景:执行两组构建
    mvn clean install -P E1 -Dformat.type=ABC
    mvn clean install -P E2 -Dformat.type=DEF
else
    # 指定单个协议:配合选中的入口点执行
    mvn clean install -P ${ENTRY_POINT} -Dformat.type=${PROTOCOL}
fi

场景2:选「全部」时,用选中的入口点执行所有协议

cd ${WORKSPACE}/myworkSpace

if [ "${PROTOCOL}" = "全部" ]; then
    mvn clean install -P ${ENTRY_POINT} -Dformat.type=ABC
    mvn clean install -P ${ENTRY_POINT} -Dformat.type=DEF
else
    mvn clean install -P ${ENTRY_POINT} -Dformat.type=${PROTOCOL}
fi

三、注意事项

  • 参数名称必须和脚本里的变量名完全一致(Jenkins参数是大小写敏感的!比如ENTRY_POINT不能写成entry_point
  • 如果你的Jenkins运行在Windows环境,把Shell语法改成Batch命令,比如引用参数用%ENTRY_POINT%,判断语句改成IF "%PROTOCOL%"=="全部"
  • 如果需要支持多选协议(比如同时选ABC和DEF),推荐安装「Extended Choice Parameter」插件,配置多选后,脚本里可以循环处理每个选中的协议

内容的提问来源于stack exchange,提问作者MK dev

火山引擎 最新活动