jenkins 2.0 pipline println无法正常工作

时间:2017-07-16 16:04:53

标签: java jenkins groovy 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()

这个pipline代码:

node("Slave") {
    checkout scm
    def firstScript = load 'FirstScript.groovy'
    echo firstScript.firstFunction()
}

唯一的输出是“可以返回并打印此字符串”。

这显然是因为println发生在slave的输出流上,而不是在master的输出流上,但我需要一种方法来连续打印从slave到master的控制台日志。 尝试将System.out从master传递到slave,没有任何效果。

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

嘿,对我来说,为什么println没有工作,但是好的电话,这是有道理的。如果您要编写一堆共享代码,则可能需要使用jenkins shared library。您可以在共享库中的vars中使用echo

如果你想让你的例子“按原样”工作,你可以将管道上下文注入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()

Jenkinsfile:

node("docker") {
    checkout scm
    def firstScript = load 'FirstScript.groovy'
    echo firstScript.firstFunction(this)
}