Jenkins系统和Jenkins'中正确的file.encoding;建立

Jenkins系统和Jenkins'中正确的file.encoding;建立,jenkins,encoding,Jenkins,Encoding,我在Jenkins上设置编码属性时遇到问题 在主机的测试Jenkins“系统信息”页面上显示file.encoding=UTF-8和sun.jnu.encoding=UTF-8。从机的“系统信息”页面上显示相同的值JVM选项字段不包括-Dfile.encoding=UTF-8,但正如我所写的,系统信息中的编码是正确的。当我使用withMaven方法在该从机上运行管道脚本时,在日志中有默认区域设置:pl\u pl,平台编码:UTF-8 在母版的生产Jenkins“系统信息”页面上显示file.en

我在Jenkins上设置编码属性时遇到问题

在主机的测试Jenkins“系统信息”页面上显示
file.encoding=UTF-8
sun.jnu.encoding=UTF-8
。从机的“系统信息”页面上显示相同的值<从机配置中的code>JVM选项字段不包括
-Dfile.encoding=UTF-8
,但正如我所写的,系统信息中的编码是正确的。当我使用withMaven方法在该从机上运行管道脚本时,在日志中有
默认区域设置:pl\u pl,平台编码:UTF-8

在母版的生产Jenkins“系统信息”页面上显示
file.encoding=UTF-8
sun.jnu.encoding=UTF-8
。但是,在从属设备的“系统信息”页面上,两个属性都有值
ANSI_X3.4-1968
。当我将
-Dfile.encoding=UTF-8
添加到从机配置
file.encoding=UTF-8
中的
JVM选项
字段时。在slave上运行相同的管道脚本会放入日志文件
默认区域设置:en_US,平台编码:ANSI_X3.4-1968
。我可以将
-Dfile.encoding=UTF-8
设置为
mavenOpts
(使用maven方法参数),它可以工作

所有服务器,包括主服务器和从服务器、测试服务器和生产服务器,都是CentOS 8。在这两个环境中,我都使用相同版本的JDK和Maven,这两个版本都是由Jenkins自动安装的。
locale
命令会在所有语言上返回相同的结果:

LANG=pl_PL.UTF-8
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=
我注意到在“环境变量”部分的slave的“系统信息”页面上有一些差异。在测试中,詹金斯有更多的属性。在詹金斯的作品中没有:
LANG
LESSOPEN
S\u颜色

我的问题是:

  • 为什么我必须在
    JVM选项中为生产Jenkins中的从属设备设置
    file.encoding
    ?不知何故,在詹金斯测试中没有它也能正常工作
  • 为什么我必须在withMaven调用中设置
    file.encoding
    ?再说一次,在Jenkins测试中,没有它,它也可以正常工作
  • 为什么Jenkins实例之间的环境变量存在差异

  • 问题在于,在slave服务器上的用户jenkins homedir中没有创建文件
    .bashrc
    .bash\u profile
    。创建它们并重新启动Jenkins后,一切正常