问题原因

changelog的获取方式(git-client插件):

  1. 首先调用git whatchanged命令,读取输出字节流(UTF-8编码的Commit Message)。
  2. 将字节流解码为字符串然后写入字符文件$JENKINS_HOME/jobs/xxx/builds/xx/changelog.xml文件中。

第2步中,git-client插件现在(最新的1.19.2版本)解码使用的是操作系统默认的编码。Windows默认编码为GBK(chcp命令查看,cp936即GBK),Linux系统默认编码为UTF-8。 如果Slave为Windows,则本身是用UTF8编码的changelog字节流会被用GBK解码,最后获得的changelog字符就成乱码了。

参考:

https://github.com/jenkinsci/git-client-plugin/blob/git-client-1.19.2/src/main/java/org/jenkinsci/plugins/gitclient/CliGitAPIImpl.java

修复:

https://github.com/jenkinsci/git-client-plugin/pull/194

https://github.com/gennady/git-client-plugin/commit/c99c91fcf497e784204398761be5c10f438d0e55

处理

修复很简单,第2步解码时指定UTF-8编码即可。目前已经有人修复了这个问题,并提交了到官方的合并请求。以后的版本中应该会修复。

临时的解决办法是:打包并安装修复版本。可直接用编译好的修复插件包:

https://github.com/gennady/git-client-plugin/raw/8383bd7c222b52e26b0d1b395b2eb26766f86cf7/compiled-plugin/git-client.hpi

在git-client 1.19.3版本中此问题已经修复

jenkins使用git SCM时changelog乱码(Jenkins部署在Linux上,任务在Windows Slave上构建)的更多相关文章

  1. Jenkins的Windows Slave分布式构建和部署

    1.新建的Slave:系统管理-->管理节点-->新建节点 远程工作目录 即是 节点服务器 站点文件存放目录 在配置节点时 启动方法 配置的选项中的 Launch agent via Ja ...

  2. Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记

    前言    持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新 ...

  3. Jenkins学习总结(3)——Jenkins+Maven+Git搭建持续集成和自动化部署的

    前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正 ...

  4. 基于 Jenkins+Docker+Git 的CI流程初探

    在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要.目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部 ...

  5. [原]Jenkins(二)---jenkins之Git+maven+jdk+tomcat

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5331 ...

  6. linux服务器中Jenkins集成git、Gradle持续构建Springboot项目

    Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...

  7. jenkins创建git任务连接时遇到的问题

    jenkins 创建任务后 配置 git时 报错 Jenkins Host key verification failed jenkins: Failed to connect to reposito ...

  8. Jenkins怎么安装?Jenkins控制台输出乱码怎么处理?Jenkins执行selenium脚本时浏览器不显示怎么处理?

    今天我们来看一看Jenkins的安装. 首先我们看一下Jenkins是什么,能够干什么.Jenkins呢是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开 ...

  9. 使用Jenkins配置Git和Maven的自动化构建

    Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便. 在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器 ...

随机推荐

  1. javascript基础04

    javascript基础04 1.循环语句 1.While 语句: while (exp) { //statements; } var i = 1; while(i < 3){ alert(i) ...

  2. 提取刷机包内system.new.dat文件

    转换 使用python脚本sdat2img来完成 sdat2img.py system.transfer.list system.new.dat system.img 输出信息 Skipping co ...

  3. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼       Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...

  4. python logging

    参考: https://docs.python.org/2/howto/logging.html#logging-basic-tutorial https://docs.python.org/2/li ...

  5. Python 开发轻量级爬虫05

    Python 开发轻量级爬虫 (imooc总结05--网页下载器) 介绍网页下载器 网页下载器是将互联网上url对应的网页下载到本地的工具.因为将网页下载到本地才能进行后续的分析处理,可以说网页下载器 ...

  6. K型热电耦高精度分段线性拟合(C语言)

    extern float GetTempOfVolMi(float V){ float K,B; if(0.03947 <= V < 2.02308) //0~50 {  K = 24.7 ...

  7. web前端学习部落22群开源分享 左边菜单导航

    有大量web前端开发工具及学习资料,可以搜群[ web前端学习部落22群 ]进行下载,遇到学习问题也可以问群内专家以及课程老师哟 <!DOCTYPE html> <html lang ...

  8. Python常见问题及资料收集

    1,字符编码处理: http://bbs.chinaunix.net/thread-1431029-1-1.html

  9. NSString使用stringWithFormat拼接的相关知识

    NSString使用stringWithFormat拼接的相关知识 保留2位小数点 1 2 3 4 //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSSt ...

  10. Asp.net通过模板(.dot/Html)导出Word,同时导出图片

    一.Office组件导出Word(服务器配置麻烦) 需要引用Office的DLL,在下文的附件中,不同的Offic版本用的不一样,虽然高级版本可以兼容低级的,不过,还是统一版本最好 贴上核心代码(转载 ...