Gil*_*ian 2 java groovy jenkins jenkins-pipeline
鉴于这个FirstScript.groovy:
class FirstScript implements Serializable{
def firstFunction() {
println "This print doesn't work"
return "This string can be returned and printed"
}
}
return new FirstScript()
Run Code Online (Sandbox Code Playgroud)
这个pipline代码:
node("Slave") {
checkout scm
def firstScript = load 'FirstScript.groovy'
echo firstScript.firstFunction()
}
Run Code Online (Sandbox Code Playgroud)
唯一的输出是"可以返回并打印此字符串".
这显然是因为println发生在slave的输出流而不是master的输出流上,但我需要一种方法来连续打印从slave到master的控制台日志.尝试将System.out从master传递到slave,没有任何效果.
有什么建议?
嘿,我不清楚为什么println没有工作,但是好的电话,这是有道理的.如果您要编写一堆共享代码,则可能需要使用jenkins共享库.您可以echo在共享库中的vars中使用.
如果你想让你的例子"按原样"工作,你可以将管道上下文注入firstFunction:
FirstScript.groovy:
class FirstScript implements Serializable{
def firstFunction(dsl) {
dsl.echo "This print doesn't work. well now it does. :)"
return "This string can be returned and printed"
}
}
return new FirstScript()
Run Code Online (Sandbox Code Playgroud)
Jenkinsfile:
node("docker") {
checkout scm
def firstScript = load 'FirstScript.groovy'
echo firstScript.firstFunction(this)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |