Groovy-скрипт в выводе jenkins println исчезает, когда вызывается в среде класса

Вывод println из функции класса теряется .

Пример сценария (outputclass.groovy):

class OutputClass
{
    OutputClass()
    {
        println("Inside class")  // This will not show in the console
    }
}

println("Outside class")  // Only this is shown in the console
output = new OutputClass()

Я использую Jenkins CLI для выполнения Groovy-сценария

java -jar ..\jenkins-cli.jar -s JENKINS_SERVER_URL groovy outputclass.groovy

Он выводит только следующее:

Внешний класс

Похоже, что класс неявно использует println из системы .out.println и System.out направляются в файлы журнала, но println вне класса использует что-то еще, что выводится в консоли сценария. Следующий код показывает поведение.

System.out.println("First")
println("Second")

Вывод:

Второй

Как мне явно настроить устройство вывода для вывода на консоль сценария Jenkins?

17
задан Magnus 13 October 2011 в 10:53
поделиться

1 ответ

Помогает ли это сообщение в списке рассылки ?

вывод отправляется на стандартный вывод, поэтому, если вы проверите свой файл журнала, вы, вероятно, увидите что-то вроде этого: INFO [STDOUT] Hello World

если вы настаиваете на использовании системного скрипта, вы должны передать переменную вашему классу, так как привязка не видна внутри класса (поэтому она передается в стандартный вывод). Вы должны использовать что-то вроде этого

public class Hello {
  static void say(out) {
    out << "Hello World "
  }
}
println "Started ..."
Hello.say(out)
0
ответ дан 30 November 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: