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

如何在Jenkinsfile中正确使用Version Number插件?

解决Jenkins Version Number插件在Jenkinsfile中的编译错误

你碰到的这个MultipleCompilationErrorsException错误,核心原因是Groovy语法不允许直接用${BUILD_DATE_FORMATTED, "yyyy-MM-dd"}这种方式调用Version Number插件的变量,而且插件注入的环境变量需要通过正确的方式引用。下面给你两种可行的正确用法:

方法一:引用插件预定义的环境变量

如果你已经在Jenkins全局配置的Version Number插件里,定义了BUILD_DATE_FORMATTED(格式为yyyyMMdd)和BUILDS_TODAY这类变量,那在Jenkinsfile里需要通过env对象来访问这些环境变量,Groovy的字符串插值要放在双引号里:

stage("Build") {
    echo "Building..."
    TAG = "${env.BUILD_DATE_FORMATTED}-develop-${env.BUILDS_TODAY}"
    sh "docker build -t ${IMAGE}:${TAG} ."
}

方法二:直接在Pipeline中使用versionNumber step生成标签

如果不想依赖全局配置,也可以直接在Pipeline里调用插件的versionNumber step来生成你需要的标签格式,这样更灵活:

stage("Build") {
    echo "Building..."
    def TAG = versionNumber(buildNumber: '${BUILDS_TODAY}', versionString: '${BUILD_DATE, "yyyyMMdd"}-develop-${BUILDS_TODAY}')
    sh "docker build -t ${IMAGE}:${TAG} ."
}

这里的versionString参数里可以直接使用插件支持的变量表达式,比如${BUILD_DATE, "yyyyMMdd"}会生成指定格式的日期,${BUILDS_TODAY}是当天构建次数。

需要注意的是:

  • 字符串插值在Groovy里,只有双引号包裹的字符串才会解析变量,单引号会原样输出;
  • 确保你已经在Jenkins的插件管理里正确安装了Version Number插件,并且Jenkins服务已经重启生效(如果是新安装的话)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:37:17