我有一个名为 apps.txt 的文件,其中包含三个应用程序名称
前端应用程序
授权服务
连接器服务*
在詹金斯管道中,我想对它们一一执行一些操作,所以我尝试使用此代码将它们放入常规列表中-
list = readFile.readFileLineByLine("${workspace}/apps.txt").collect {it}
for (item in list) {
println "I need to perform some operations on files"
}
但出现 groovy.lang.MissingPropertyException。 如果我使用这样的文件类 -
list = new File("${workspace}/apps.txt").collect {it}
,那么它仅在 Jenkins 主节点上搜索文件,并且我得到 fileNotFoundException。
如果我使用
list = readFile("${workspace}/apps.txt").collect {it}
那么列表会逐个字符地获取值。我如何从 apps.txt 获取应用程序名称以便对每个应用程序执行操作。
你的尝试很接近,但把事情搞混了。
这些是工作方式:
def list = new File("${workspace}/apps.txt").text.readLines()
注意中间的
.text
调用。
def list = readFile("${workspace}/apps.txt").readLines()
或者使用 Jenkins 提供的助手。
旁注:
.collect{it}
只是 .collect()
- 通常只是
需要复制一个列表。 由于从文件中读取的行已经
急切地阅读,那些是副本。
这对我来说是 Windows 工作人员的工作
script {
def list = readFile("filesChanged").readLines()
for(item in list){
print item
bat('type '+item)
}
}