我有一个类似 Java 的 Groovy 脚本,用于 Jenkins 管道。
在那里我有以下场景。 有一个带字符串的 ArrayList,指定脚本的版本,例如:
def version_list = [] as ArrayList<String>
-> [Version-2.5.0.0, Version-2.4.0.0, Version-2.3.1.0, Version-2.3.0.0, Version-2.0.0.0]
此列表是固定的,无法修改。 我正在遍历列表以获取每个元素,进行一些处理。
另外我需要检查每个元素,如果有相同版本的点发布,即:
version_list.each{each_version -> //each_version = Version-2.3.0.0
if(version_list.contains(2.3.x.0)){ //while x!=0
print("Version " + each_version + "has point_release")
}
}
我已经尝试过以下方法,但这不起作用。
def version_list = [] as ArrayList<String>
def splitted_ver = [] as ArrayList<String>
version_list.each{each_version ->
splitted_ver = each_version.split("\\.")
if (version_list.contains("^" + splitted_ver[0] + "." + splitted_ver[1] + "(.([1-9]+)\\.([0-9]+)\$)")){
print(each_version + " has a point_release!")
}else{
print("has no point_release")
}
}
假设它们都是像
Version-2.3.0.0
这样的格式,这样的东西应该可以工作。
version_list.each{each_version -> {
splitted_ver = each_version.substring(8).split(“.”)
if (splitted_ver[2] != “0”)){
print(each_version + " has a point_release!")
}else{
print("has no point_release")
}
}