如何强制Jenkins Blue Ocean显示打印输出而不是“打印输出”;打印消息;?

如何强制Jenkins Blue Ocean显示打印输出而不是“打印输出”;打印消息;?,jenkins,groovy,jenkins-pipeline,jenkins-blueocean,Jenkins,Groovy,Jenkins Pipeline,Jenkins Blueocean,在下面的屏幕截图中,一些调试条目显示输出文本(末尾带有-Print Message),而其他条目仅显示Print Message。要查看这些,您必须展开步骤以查看输出 所有行都使用打印“文本”的格式。我试过使用print、println和echo。它们都有相同的输出 为什么这些有时会显示消息,而另一些则会强制将其放入折叠的部分?是否可以将其配置为始终显示?正常的非Blue Ocean Jenkins界面显示良好,但有很多细节。我尝试了很多方法,似乎在显示环境变量时,它使用打印消息而不是文本。这

在下面的屏幕截图中,一些调试条目显示输出文本(末尾带有
-Print Message
),而其他条目仅显示
Print Message
。要查看这些,您必须展开步骤以查看输出

所有行都使用
打印“文本”的格式
。我试过使用
print
println
echo
。它们都有相同的输出


为什么这些有时会显示消息,而另一些则会强制将其放入折叠的部分?是否可以将其配置为始终显示?正常的非Blue Ocean Jenkins界面显示良好,但有很多细节。

我尝试了很多方法,似乎在显示环境变量时,它使用打印消息而不是文本。

这似乎是一个已知的问题:

看起来BlueOcean没有正确处理Groovy GString。这是我观察到的:

一个简单的例子:

echo "hello world"
将按预期工作并正确显示。 而带有变量的模板字符串,如:

echo "hello ${some_variable}"
将在“打印消息”下拉列表下隐藏消息


另请参见。

如果echo使用的变量值来自params或environment(即“params.*”),则步骤标签将获得“Print message”名称,而不是被回送的实际值。变量本身是否为字符串并不重要。即使显式地将参数值转换为字符串也没有帮助

String param_str
String text_var_2

parameters {
    string(name: 'str_param', defaultValue: 'no value')
}

                param_str = params.str_param.toString()

                echo "string text in double quotes is ${param_str}"
                echo "simple quoted string is here"
                echo 'simple quoted string is here' 
                echo 'Single quoted with str ' + param_str + ' is here'
                echo param_str                    
                text_var_2 = 'Single quoted str ' + param_str + ' combined' 
                echo "GString global text2 is ${text_var_2}" 
                echo 'String global text2 is' +  text_var_2
BlueOcean在步骤标签中显示简单的带引号的字符串,但其他所有内容都显示为“打印消息”

请注意,“正常”变量(字符串、整数)不包括在此示例中,但它们通常也显示在标签中。如果你有这样的代码

def text_str = 'Some string'
def int_var = 1+2
echo text_str + ' is here'
echo int_var
这些将显示在标签上

事实上,正如前面的回答所述,这似乎是一个已知的詹金斯问题。

这是一个已知的问题。“classic”视图中的控制台输出正确插入变量

一种解决方法是使用以下参数的
标签


我也注意到了这一点。这不是很有用。简单的回答是,我认为你做不到。最近实现了一个插件,我意识到它是实现它的插件提供的管道步骤的显示名称。从这里查找getDisplayName()方法:有相同的问题,无法理解5行不同的行如何使用echo打印出带有和不带“打印消息”。今天遇到了相同的问题。。。我注意到,如果调用嵌入到另一个共享库中的步骤,所有语句都会打印链接。。。还在调查…我又来了。。。没有迹象表明发生这种情况的原因。。。
def message = 'Hello World'
sh(script: "echo $message", label: message)