我有一个目录中的文件列表。例:
sample1.propertiessample2.propertiessample3.properties
我试图使用groovy代码在Jenkins Active Choices参数中推送这些值。如何在没有&;.properties&;的情况下填充这个列表?最后。我的Active options参数列表需要如下所示:
sample1sample2sample3
我使用的代码是:
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.push(it.replace("/","").replace(".properties", ""))
如果我对您的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) }