Вывод 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?
Помогает ли это сообщение в списке рассылки ?
вывод отправляется на стандартный вывод, поэтому, если вы проверите свой файл журнала, вы, вероятно, увидите что-то вроде этого: INFO [STDOUT] Hello World
если вы настаиваете на использовании системного скрипта, вы должны передать переменную вашему классу, так как привязка не видна внутри класса (поэтому она передается в стандартный вывод). Вы должны использовать что-то вроде этого
public class Hello {
static void say(out) {
out << "Hello World "
}
}
println "Started ..."
Hello.say(out)