0
私はジェンキンスパイプライン用のライブラリをコーディングしています。私は[INFO], [WARNING]
のように私のメッセージに異なるフォーマットを印刷したいと思います。Jenkinsコンソールの出力に書き込む方法は?
これまでのところ、私はこれがあります。
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
}
}
私はしかし、私はこのメッセージをリダイレクトしたいと思い、私のジェンキンスログに[INFO] SOME VERY USEFUL INFORMATION
を見ることができますがジェンキンスはコンソールを出力する。
どうすればいいですか?
例外:
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)
https://jenkins.io/doc/pipeline/steps/workflow-basicを-steps /#code-echo-code-print-message? – jonrsharpe
@jonrsharpe動作しません、私は私の質問を更新しました。 –
クラス内でメソッドを探します。たとえば、 'def out = new Output(echo)'を実行すると、インスタンスにステップへのアクセス権が与えられます。 – jonrsharpe