jenkins中文乱码与服务启动

问题描述

项目构建最新修改记录中文乱码。

问题查看与分析

首先,查看jenkins管理界面的系统属性功能。
对应URL地址为:http://jenkins.xxx.com/systemInfo

可以看到jenkins启动环境变量file.encoding值为默认的ISO-8859-1(Latin-1字符集)。
不希望jenkins乱码,需要设置其编码方式为UTF-8。(参考:Jenkins控制台中乱码问题)

问题解决

当前jenkins启动命令为:

1
java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=8009 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

在启动jenkins时,需要额外添加参数file.encoding,并设置其参数值为UTF-8。
修改后的启动命令如下:

1
java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=8009 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 -Dfile.encoding=UTF-8

扩展说明

由jenkins启动命令可看出:

  1. jenkins安装目录
    /var/lib/jenkins

  2. jenkins服务部署代码
    /usr/lib/jenkins/jenkins.war

  3. 运行日志
    /var/log/jenkins/jenkins.log

  4. jenkins代码部署位置
    /var/cache/jenkins/war

  5. jenkins服务端口
    http: 8080
    ajp13: 8009

  6. jenkins servlet容器
    jenkins服务运行在winstone servlet容器,类似于tomcat, jetty等。
    jenkins命令启动接收的参数--logfile, --webroot, --httpPort, --ajp13Port等都是winstone的。
    另外,查看了webroot参数对应的目录,发现目录包含类库winstone.jar,也可知jenkins可能是放在winstone容器里运行的。

关于winstone可参考:Winstone Servlet Container v0.9.10

文章目录
  1. 问题描述
  2. 问题查看与分析
  3. 问题解决
    1. 扩展说明
|