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

Jenkins Active Choices参数填充如何去除文件名.properties后缀

问题描述

某目录下存放了一组properties配置文件,示例文件名如下:

  • sample1.properties
  • sample2.properties
  • sample3.properties

需要通过Groovy代码将这些文件传入Jenkins Active Choices参数,填充选项列表时要去除文件名末尾的.properties后缀,最终参数的选项展示效果为:

  • sample1
  • sample2
  • sample3

原有实现代码如下:

def reader = new BufferedReader(new InputStreamReader(conn.getInputStream()))
def results = new JsonSlurper().parseText(reader.getText());
reader.close()
data= results.tree.path
data.each { 
it -> if(it.endsWith(".properties"))
choices.push(it.replace("/","" ) )
}
choices=choices.sort()
choices.add(0,"SELECT")
return choices
调整方法

原有代码仅处理了路径中的斜杠替换,没有对.properties后缀做截断,同时缺少choices列表的初始化逻辑,调整后完整代码如下:

import groovy.json.JsonSlurper
def choices = []
def reader = new BufferedReader(new InputStreamReader(conn.getInputStream()))
def results = new JsonSlurper().parseText(reader.getText())
reader.close()
def data = results.tree.path
data.each { it ->
    if (it.endsWith(".properties")) {
        // 先移除路径斜杠,再截断末尾的.properties后缀
        def pureFileName = it.replace("/", "") - ~/\.properties$/
        choices.push(pureFileName)
    }
}
choices.sort()
choices.add(0, "SELECT")
return choices

核心修改点:

  • 补充choices列表初始化,避免变量未定义的运行时报错
  • 文件名处理环节新增后缀截断逻辑,使用Groovy原生正则操作- ~/\.properties$/精准移除字符串末尾的.properties后缀,不会误删文件名中间出现的相同字符
  • 移除不必要的分号和冗余变量赋值,符合Groovy编码习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:42:23