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

Jenkins Active Choice参数中Groovy脚本无返回值问题求助

Jenkins Active Choice参数中Groovy脚本无返回值问题求助

我来帮你分析下问题所在,你的脚本在Scriptler能正常运行,但放到Active Choice参数里就没返回值,主要是这几个原因:

  • 返回值类型不符合要求:Active Choice参数需要返回可作为下拉选项的集合(比如List<String>、String[]这类格式),但你最后返回的是java.util.Date对象,Jenkins没法直接把这个对象转换成参数选项,所以就显示为空了。
  • 冗余打印语句干扰解析:脚本里的println ex_date在Scriptler里能正常输出,但在Active Choice的执行环境中,额外的打印输出可能会干扰Jenkins对返回值的识别,建议删掉这行。
  • 日期API混用的潜在问题:你同时用了Java 8的java.time.LocalDate和旧的java.util.Date,虽然暂时没报错,但这种混合写法容易引发兼容性问题,建议统一使用Java 8+的日期API。

给你修正后的脚本示例,把日期转成字符串并以列表格式返回,这样Active Choice就能正常识别出选项了:

import java.time.format.DateTimeFormatter
import java.time.LocalDate

def exception_file = "test/10-01-2023/test"
// 提取日期部分并转为字符串
def ex_date_str = exception_file.split('/')[1]

def formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")
// 用Java 8+API解析日期
def expiry_date = LocalDate.parse(ex_date_str, formatter)

// 返回包含日期字符串的列表,符合Active Choice的要求
return [expiry_date.format(formatter)]

如果你的需求是根据过期日期做逻辑判断(比如返回"已过期"或"未过期"这类选项),可以再调整脚本逻辑,核心就是要确保返回的是字符串类型的集合哦~

备注:内容来源于stack exchange,提问作者Alfred Hitchkock

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 14:52:28