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

如何让util.Interpolate在src::branch为空时返回默认值trunk

解决Jenkins SVN分支插值手动触发失效问题

你可以通过Groovy的条件判断结合util.Interpolate来实现需求,核心思路是对插值结果做非空校验,为空时自动 fallback 到trunk。

方案1:基础非空判断

直接利用Groovy的?: Elvis运算符处理空值或空字符串:

def branchName = util.Interpolate('%(src::branch)s') ?: 'trunk'

这个写法会在src::branch返回null、空字符串时自动替换为trunk,但如果返回的是空白字符(比如多个空格),会保留原内容。

方案2:严谨的空白处理

如果需要同时过滤空白字符,可以先做trim再判断:

def rawBranch = util.Interpolate('%(src::branch)s') ?: ''
def branchName = rawBranch.trim() ?: 'trunk'

这样即使插值结果是全空格的字符串,也会被替换为trunk。

为什么手动触发会失效?

轮询构建时,Jenkins SVN插件会自动从版本库上下文提取分支信息并设置src::branch变量;而手动触发时,没有对应的版本库触发上下文,该变量未被初始化,导致插值返回空值或null,从而出现失效问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:32:04