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

Jenkins中CascadeChoiceParameter显示[object,Object]而非字符串问题

问题分析

你的Groovy代码存在两个关键问题导致releaseString显示异常:

  1. 语法错误:你把releaseString的字符串赋值和后续的列表定义写在了同一行,导致releaseString实际被赋值为字符串索引数组的结果,而非预期的分支路径字符串。
  2. 字符串格式错误:你在releaseString中多余插入了/${now}/,这会把LocalDateTime.now()的完整toString结果(如2025-03-15T14:30:00)插入到路径中,不仅不符合预期格式,还会引发后续类型混乱。

另外,代码中缺少必要的类导入,可能导致TextStyle和Locale无法正常识别。

修正后的Groovy代码
// 导入必要的类
import java.time.LocalDateTime
import java.time.format.TextStyle
import java.util.Locale

def now = LocalDateTime.now()
def monthName = now.month.getDisplayName(TextStyle.FULL, Locale.ENGLISH).toLowerCase()
// 修正路径格式,移除多余的${now}部分
def releaseString = "saas/${now.year}/${monthName}/main"

// 单独定义要置顶的元素列表
def topEntries = ['saas/master', releaseString]

topEntries.each { entry ->
    // 先判断元素是否存在,避免移除不存在的元素报错
    if (choices.contains(entry)) {
        choices.remove(entry)
        choices.add(0, entry)
    }
}

return choices
关键修正点说明
  • 拆分代码逻辑:将releaseString的定义与列表遍历操作分开,确保变量被正确赋值为字符串类型。
  • 修正路径格式:按照你预期的saas/2025/march/main格式,只保留年份和月份名称,移除多余的完整时间戳。
  • 添加类导入:明确导入LocalDateTime、TextStyle和Locale,避免Jenkins脚本环境中出现类找不到的问题。
  • 增加存在性判断:在移除元素前先检查是否存在,防止因元素不在choices列表中引发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 17:45:00