groovy 无法拆分文件列表

hk8txs48  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(220)

我有一个目录中的文件列表。例如:
sample1.properties sample2.properties sample3.properties
我正在尝试使用groovy代码将这些值推入Jenkins Active Choices参数中。我如何填充这个列表而不在末尾添加“.properties”。我的Active Choices参数列表需要如下所示:
样品1样品2样品3
我使用的代码是:

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
wmtdaxz3

wmtdaxz31#

简单地替换.properties部分将不起作用?

choices.push(it.replace("/","").replace(".properties", ""))
mrfwxfqh

mrfwxfqh2#

如果我关于results.tree.path内容的假设是正确的,那么您可能应该使用类似以下的内容:

def data = [
    'some/complex/path/sample1.properties',
    'some/complex/path/some_irrelevant_file.txt',
    'some/complex/path/sample2.properties',
    'some/complex/path/sample3.properties'
]

data.findAll { it.endsWith('.properties') }
    .collect { it.split('/').last().replace('.properties', '') }
    .each { println it }

因此,在您的情况下,您需要:

results.tree.path.findAll { it.endsWith('.properties') }
    .collect { it.split('/').last().replace('.properties', '') }
    .each { choices.push(it) }

相关问题