使用的是jenkins+tomcat配置。
本地时间是东8区的时间(北京时间),jenkins获取的时间是格林尼治标准时间,两者相差8小时,导致每次构件时都与本地时间相差8个小时。网上查了一下,在结合自己的操作,现总结如下:
有两种解决方法一tomcat用脚本启动时
tomcat若是设置为用startup.bat启动,会调用catalina.bat文件,在Catalian.bat文件的166行“rem ExecuteJavawith the applicable properties ”下面会加载系统设置的相关属性。
解决办法:
在catalina.bat中,找到“set JAVA_OPTS=....”修改配置如下:
set JAVA_OPTS=%JAVA_OPTS% -Duser.timezone=GMT+08 -Xms256m -Xmx800m
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file="%CATALINA_BASE%/conf/logging.properties"-Xms256m -Xmx800m//初始化内存大小为256m,可以使用的最大内存为800m(可选,对于运行java内存溢出时,可相应更改)-Duser.timezone=GMT+08 //设置为北京时间
二tomcat用windows服务启动时
这时候上面设置CATALINA_OPTS 属性的方法就不适用了,因为作为系统服务的话,系统启动时调用的是 %tomcat_home%/bin/tomcat6w.exe,他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:
解决办法:
打开tomcat6w.exe,在java选项卡->java options添加语句
-Duser.timezone=GMT+08 //设置为北京时间
点击应用再重启tomcat服务即可。
疑问:我在两台机子上都装有jenkins,一台是XP,一台是win7,但是在win7系统下jenkins时间正常显示,这还需要进一步的研究其中的原因。xp下已验证通过,更改成功。