持续集成之jenkins实践教程:基础篇(7): 控制台输出的中文乱码

版权声明:本文为博主原创文章,未经博主允许欢迎转载,但请注明出处。 https://blog.csdn.net/liumiaocn/article/details/82721334

jenkins是Java开发的应用程序,很多东西可以通过-D传入选项来进行设定,这篇文章以中文乱码的调整为例子,来说明一下常见修改的方式。

现象

使用jenkinsfile定义的流水线,如果stage名称为中文的时候,图形显示没有问题,但是在console的输出中会显示成??的乱码内容。
这里写图片描述
乱码内容的显示是因为流水线定义代码中包含中文信息比如:

    stage("分支内容拉取") {
      steps {
      ...

原因

可以通过系统信息来确认相关的设定,编码信息与file.encoding相关,确认之后发现编码方式不是utf8所导致(最终是否真正起效需要对此设定信息进行确认)
这里写图片描述

修改方法

无论哪种方法,最终都会落到启动jenkins的参数传递上,比如通过JAVA_OPTS,设定内容如下

设定项 设定值
file.encoding UTF-8
sun.jnu.encoding UTF-8

直接修改启动脚本,在java后直接添加-D选项可能是最为直接的方式,也可以通过Jenkins中进行环境变量的设定,间接影响到设定。

/ # ps |grep java
    9 root       0:50 java -jar -Duser.timezone=Asia/Shanghai -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -Dhudson.model.DirectoryBrowserSupport.CSP= /usr/share/jenkins/jenkins.war
  177 root       0:00 grep java
/ #

设定确认

这里写图片描述

结果确认

再次执行job,console信息中的中文内容就可以正确显示了
这里写图片描述
但是之前的执行job的console信息还是不会改变

阅读更多

没有更多推荐了,返回首页