Groovy逐行读取文件并将其存储到列表中

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

我有一个名为apps.txt的文件,其中有三个应用程序名称
前端应用程序
授权服务
连接器服务 *
在jenkins pipeline中,我想对它们逐个执行一些操作,所以我尝试使用以下代码将它们放入groovy列表中-

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},那么list会逐个字符地获取值。我如何从apps.txt中获取应用程序名称,以便在每个应用程序上执行操作。

ecfsfe2w

ecfsfe2w1#

你的尝试很接近,但把事情搞混了。
这些都是工作方式:

def list = new File("${workspace}/apps.txt").text.readLines()

请注意中间的.text调用。

def list = readFile("${workspace}/apps.txt").readLines()

或者是Jenkins提供的帮手。
旁注:.collect{it}就是.collect()--通常只需要复制一个列表,因为从文件中读取的行已经被急切地读取了,所以这些都是副本。

juud5qan

juud5qan2#

这份工作对我来说是一个Windows工人

script {
       def list = readFile("filesChanged").readLines()
       for(item in list){
          print item
          bat('type '+item) 
          }    
        }

相关问题