gpt4 book ai didi

jenkins println 输出中的 Groovy-script 在类环境中调用时消失

转载 作者:行者123 更新时间:2023-12-03 13:28:07 25 4
gpt4 key购买 nike

类函数中 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

它只输出这个:

Outside class



似乎该类隐式使用 System.out.println 中的 println,并且 System.out 被定向到日志文件,但类外部的 println 正在使用其他内容,该内容在脚本控制台中输出。以下代码显示了该行为。
System.out.println("First")
println("Second")

输出:

Second



如何显式设置输出设备以输出到 Jenkins 脚本控制台?

最佳答案

如果您将 skript 用作后期构建步骤(我不确定它是否适用于上述 CLI),您可以在记录器中使用构建:

manager.listener.logger.println("some output")

所以在你的情况下,这样的事情可能会有所帮助:
class OutputClass
{
OutputClass(logger) // Have to pass the out variable to the class
{
logger.println ("Inside class")
}
}

output = new OutputClass(manager.listener.logger)

另见 Example 10 in Groovy Plugin Doc

关于jenkins println 输出中的 Groovy-script 在类环境中调用时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7742472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com