目录

  1. Jenkins时区设置问题
  2. SVN更新代码时区问题
  3. MAVEN打包时区问题

一、Jenkins时区设置问题

docker@jenkins:~$ cat /etc/default/jenkins|grep 2048
JAVA_ARGS="-Xmx2048m -Xms2048m -XX:PermSize=512m -XX:MaxPermSize=512m -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai -Djava.awt.headless=true" # Allow graphs etc. to work even when an X server is present

增加时区参数:-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai

修改启动后查看jenkins系统参数:

二、SVN更新代码时区问题

svn时区依赖jenkins的时区设置

没有修改时区之前:

能看的出来revision时间是有问题的跟我们机器时间不一致少了8小时

修复这个问题有两个方法

  • 可以通过设置svn路径后增加@HEAD忽略掉revision来修复这个问题,具体设置如下
  • 修改jenkins时区,参考第一个问题
    • jenkins时区设置完之后svn拉取代码会自动修改:revision,如图

三、MAVEN打包时区问题

我项目中使用的是maven自己的timestamp

<timestamp>${maven.build.timestamp}</timestamp>

它的问题是:时区是UTC而且无法修改,如果要使用GMT+8,就需要插件提供支持

使用maven utc的timestamp构建出来的包名如下:

我使用插件:build-helper-maven-plugin

pom中增加plugin build-helper-maven-plugin来覆盖maventimestamp变量:

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>timestamp</name>
<pattern>yyyyMMddHHmm</pattern>
<timeZone>GMT+8</timeZone>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

然后打包测试:

测试通过,plugin配置建议配置在parent pom中这样所有子集项目都可以继承