Groovy читать файл построчно и сохранять его в список - PullRequest
0 голосов
/ 10 июля 2020

У меня есть файл с именем apps.txt , в котором есть три названия приложений

frontendapp

служба авторизации

connectorservice *

В конвейере Дженкинса я хочу выполнить некоторые операции над ними один за другим, поэтому я пытаюсь поместить их в список 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}, тогда список получает значения символ за символом. Как я могу получить имена приложений из apps.txt для выполнения операций с каждым приложением.

1 Ответ

1 голос
/ 11 июля 2020

Ваши попытки близки, но они смешиваются.

Это рабочие способы:

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

Обратите внимание на вызов .text между ними.

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

Или с помощью помощника, предоставляемого Jenkins.

Примечание: .collect{it} - это просто .collect() - и обычно требуется только для копирования списка. Поскольку строки чтения из файла уже читаются с нетерпением, это копии.

...