You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkinsfile中传递CustomTool自定义工具的版本参数

Jenkins自定义工具版本参数传递解决方案

你初步编写的嵌套参数写法存在两处语法问题,无法正常运行:

  • Groovy GString嵌套错误:已经在${}包裹的代码执行范围内调用变量时,不需要额外加一层${}包裹变量名
  • 参数分隔符缺失:version参数和type参数之间遗漏了逗号分隔符

正确可运行写法

// 版本号建议定义为字符串类型,避免数值自动格式化导致和全局配置的版本字符串匹配失败
def TOOL_VERSION = "1.1.0"

script {
    withEnv(["myCustomToolPath=${tool name: 'my-custom-tool', version: TOOL_VERSION, type: 'com.cloudbees.jenkins.plugins.customtools.CustomTool'}"]) {
        dir ("${myCustomToolPath}") {
            // 你的工具调用逻辑
        }
    }
}

使用注意事项

  • 传入的版本号必须和Jenkins全局工具配置中该自定义工具下登记的可用版本字符串完全一致,否则会触发工具安装校验失败
  • 该写法同时支持自定义版本号固定写死、或者从pipeline参数中动态传入版本号两种场景,完全不需要依赖Web UI侧的工具版本选择参数
  • 如果你的自定义工具配置了不同节点的差异化安装路径规则,tool方法会自动适配当前构建节点的对应版本工具路径,无需额外调整代码

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:51:01