Jenkinsfile中echo与println语句的区别是什么?
Jenkins流水线中echo与println的区别
在Jenkins Groovy流水线里,echo和println虽然都能输出内容,但核心区别主要在这几点:
输出位置不同
echo是Jenkins官方提供的流水线步骤,输出的内容会直接显示在构建日志的主界面,是构建过程中用户能直观看到的标准日志内容。println是Groovy语言本身的打印方法,它的输出会被Jenkins捕获到服务器后台的系统日志(比如Jenkins master的jenkins.log文件),默认在构建日志主界面看不到。上下文适配不同
echo作为流水线步骤,能适配流水线的节点上下文:哪怕在远程agent节点执行,输出内容也会同步回Jenkins主节点,显示在统一的构建日志里。println是Groovy层面的操作,在远程agent上执行时,输出可能只留在agent本地的日志中,不会自动同步到主节点的构建日志,除非额外配置了日志同步。使用场景不同
如果是要给构建执行者展示关键信息(比如版本号、构建阶段提示),优先用echo;
如果是调试阶段输出内部变量、排查后台问题,不想让普通用户在构建日志里看到,就用println。
举个实际例子,你写的这段代码:
buildNumber = "1.10"; echo "BUILD #${buildNumber}"; println "BUILD #${buildNumber}";
执行后,echo的BUILD #1.10会直接出现在构建日志里,而println的同内容只能在Jenkins服务器的后台日志文件里找到。
内容的提问来源于stack exchange,提问作者Alonso Karlos
相关产品推荐
相关产品推荐

