我已经创建了GroovyAnsi.groovy文件,代码如下: Source现在是https://gist.github.com/tvinke/db4d21dfdbdae49e6f92dcf1ca6120de,请帮助我在jenkins groovy脚本中调用此函数来为输出着色。
我不能使用这个函数,因为我得到下面的错误: groovy.lang.MissingPropertyException:没有这样的属性: out for class: groovy.lang.Binding at groovy.lang.Binding.getVariable(Binding.java:63) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:270)
// Ansi colors in Groovy
// Author: Ted Vinke
import static Ansi.*
println color("BOLD", Ansi.BOLD)
println color("ITALIC", Ansi.ITALIC)
println color("UNDERLINE", Ansi.UNDERLINE)
println color("BLINK", Ansi.BLINK)
println color("RAPID_BLINK", Ansi.RAPID_BLINK)
println color("REVERSE_VIDEO", Ansi.REVERSE_VIDEO)
println color("INVISIBLE_TEXT", Ansi.INVISIBLE_TEXT)
println color("RED", Ansi.RED)
println color("BLACK", Ansi.BLACK)
println color("BOLD", Ansi.BOLD)
println color("GREEN", Ansi.GREEN)
println color("YELLOW", Ansi.YELLOW)
println color("BLUE", Ansi.BLUE)
println color("MAGENTA", Ansi.MAGENTA)
println color("CYAN", Ansi.CYAN)
println color("WHITE", Ansi.WHITE)
println color("DARK_GRAY", Ansi.DARK_GRAY)
println color("LIGHT_BLUE", Ansi.LIGHT_BLUE)
println color("LIGHT_GREEN", Ansi.LIGHT_GREEN)
println color("LIGHT_CYAN", Ansi.LIGHT_CYAN)
println color("LIGHT_RED", Ansi.LIGHT_RED)
println color("LIGHT_PURPLE", Ansi.LIGHT_PURPLE)
println color("LIGHT_YELLOW", Ansi.LIGHT_YELLOW)
println(
[
'Look', Ansi.LIGHT_RED,
'ma', Ansi.REVERSE_VIDEO,
',', Ansi.GREEN,
'no ', Ansi.MAGENTA,
'hands!', Ansi.LIGHT_YELLOW
]
.collate(2)
.collect { pair ->
color(pair.first(), pair.last())
}.join(' ')
)
/**
* Small ANSI coloring utility.
*
* @see http://www.bluesock.org/~willg/dev/ansi.html
* @see https://gist.github.com/dainkaplan/4651352
*/
class Ansi {
static final String NORMAL = "\u001B[0m"
static final String BOLD = "\u001B[1m"
static final String ITALIC = "\u001B[3m"
static final String UNDERLINE = "\u001B[4m"
static final String BLINK = "\u001B[5m"
static final String RAPID_BLINK = "\u001B[6m"
static final String REVERSE_VIDEO = "\u001B[7m"
static final String INVISIBLE_TEXT = "\u001B[8m"
static final String BLACK = "\u001B[30m"
static final String RED = "\u001B[31m"
static final String GREEN = "\u001B[32m"
static final String YELLOW = "\u001B[33m"
static final String BLUE = "\u001B[34m"
static final String MAGENTA = "\u001B[35m"
static final String CYAN = "\u001B[36m"
static final String WHITE = "\u001B[37m"
static final String DARK_GRAY = "\u001B[1;30m"
static final String LIGHT_RED = "\u001B[1;31m"
static final String LIGHT_GREEN = "\u001B[1;32m"
static final String LIGHT_YELLOW = "\u001B[1;33m"
static final String LIGHT_BLUE = "\u001B[1;34m"
static final String LIGHT_PURPLE = "\u001B[1;35m"
static final String LIGHT_CYAN = "\u001B[1;36m"
static String color(String text, String ansiValue) {
ansiValue + text + NORMAL
}
}发布于 2020-06-16 15:58:47
您必须向Jenkins类路径提供您的类Ansi。您可以使用Ansi类创建一个jar,并将该jar复制到Jenkins类路径中,或者必须在Jenkins中使用的每个groovy脚本中声明Ansi类。
https://stackoverflow.com/questions/62394987
复制相似问题