如何在 groovy 中使用地图
How to use map in groovy
这是我的脚本目前的样子 -
baseList = readFile('text2.txt').split('\n') as List
def cleanList = []
for (i=0; i < baseList.size; i++) {
if (baseList[i].contains('=')){
cleanList += baseList[i]
}
}
print(cleanList)
这给出了以下输出-
[Pipeline] echo
[version.build=874, version.maintenance=0, version.major=1, version.minor=37]
我希望这些值进入另一个名为“svnTag”的变量
def svnTag="ccsmp_v_${version.major} ${version.minor} ${version.maintenance} ${version.build}"
所以当我打印 svnTag 时,它输出这样的东西-
SVN_TAG=ccsmp_v_1.37.0.846
您使用的不是 Map
,而是 String
的 List
,其中每个元素的形式为 <key>=<value>
如果你想将你的文件解析为地图,你可以使用类似的东西:
def baseList = readFile('text2.txt').split('\n') as List
def map = [:]
for (el in baseList) {
if (el.contains('=')) {
def parts = el.split('=')
map[parts[0]] = parts[1]
}
}
然后您可以将地图中的值用于:
def svnTag="ccsmp_v_${map['version.major']} ${map['version.minor']} ${map['version.maintenance']} ${map['version.build']}"
如果您的文件是有效的 属性 文件(所有行都采用 key=value
的形式),您可以使用 readProperties
步骤为您创建一个 Properties 对象(那实际上是 Map
):
def map = readProperties file: 'text2.txt'
这是我的脚本目前的样子 -
baseList = readFile('text2.txt').split('\n') as List
def cleanList = []
for (i=0; i < baseList.size; i++) {
if (baseList[i].contains('=')){
cleanList += baseList[i]
}
}
print(cleanList)
这给出了以下输出-
[Pipeline] echo
[version.build=874, version.maintenance=0, version.major=1, version.minor=37]
我希望这些值进入另一个名为“svnTag”的变量
def svnTag="ccsmp_v_${version.major} ${version.minor} ${version.maintenance} ${version.build}"
所以当我打印 svnTag 时,它输出这样的东西-
SVN_TAG=ccsmp_v_1.37.0.846
您使用的不是 Map
,而是 String
的 List
,其中每个元素的形式为 <key>=<value>
如果你想将你的文件解析为地图,你可以使用类似的东西:
def baseList = readFile('text2.txt').split('\n') as List
def map = [:]
for (el in baseList) {
if (el.contains('=')) {
def parts = el.split('=')
map[parts[0]] = parts[1]
}
}
然后您可以将地图中的值用于:
def svnTag="ccsmp_v_${map['version.major']} ${map['version.minor']} ${map['version.maintenance']} ${map['version.build']}"
如果您的文件是有效的 属性 文件(所有行都采用 key=value
的形式),您可以使用 readProperties
步骤为您创建一个 Properties 对象(那实际上是 Map
):
def map = readProperties file: 'text2.txt'