gpt4 book ai didi

jenkins - 如何在 Jenkins 控制台输出上写?

转载 作者:行者123 更新时间:2023-12-05 04:09:00 24 4
gpt4 key购买 nike

我正在为我的 Jenkins 管道编写一个库。我想为我的消息打印不同的格式,例如 [INFO]、[WARNING] 等等。

到目前为止我有这个:

import org.foo.Output

def call(body) {

def config = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = config
body()

def out = new Output()

node("${config.slaveNodeName}") {
try {
stage ('CLONE') {
out.info("SOME VERY USEFUL INFORMATION")
...

在我的 org.foo.Output 类中:

package org.foo

import java.util.logging.Logger


class Output {
private static final Logger LOGGER = Logger.getLogger(Output.class.getName());

def info(msg){
LOGGER.info("${msg}")
echo "[INFO] ${msg}" <-- gives me an exception described below
}
}

我可以在我的 Jenkins 日志中看到 [INFO] SOME VERY USEFUL INFORMATION,但是,我想将此消息重定向到 Jenkins 输出控制台。

我该怎么做?

异常(exception):

hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.foog.Output.echo() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl) values: [[INFO] SOME VERY USEFUL INFORMATION]
Possible solutions: each(groovy.lang.Closure), info(java.lang.Object), wait(), grep(), any(), find()
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:19)

最佳答案

瓦尔特,试试这个。它适用于我的脚本,我认为它也适用于您的脚本。

在 groovy 脚本中,添加:

node("${config.slaveNodeName}") {
try {
stage ('CLONE') {
out.info(this,"SOME VERY USEFUL INFORMATION")

并像这样更改类 groovy 脚本:

def info(script,msg){
LOGGER.info("${msg}")
script.echo "[INFO] ${msg}"
}

关于jenkins - 如何在 Jenkins 控制台输出上写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46912123/

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