如何让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
相关产品推荐
相关产品推荐

