小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
【起因】说一下要实现的效果
女朋友最近接到手里的任务就是要将Maven打的包设置成xxx-2021209252204.jar,因为是springboot项目,网上的例子其实有很多。
开始时使用了maven自带的时间插件,直接在properties标签中加入时间格式的设置,如下:
<properties>
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>
随后在build标签中指定filename即可。
<build>
<finalName> ${project.artifactId}-${maven.build.timestamp}</finalName>
</build>
就这样试了试,结果确实打包成功了,可没想到maven自带时间组件时区是只能使用UTC,没办法,只能找找帮手了。
【问题】打包时遇到的时区问题
这个问题其实也就是一个组件问题,既然自带组件解决不了问题,那么我们就用一个其他的组件来替代好了。
于是将buildnubmer-maven-plugin推给她,并且将一定的配置项一并发过去,如下:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>build.time</name>
<pattern>yyyyMMddHHmm</pattern>
<locale>zh_CN</locale>
<timeZone>GMT+8</timeZone>
</configuration>
</execution>
</executions>
</plugin>
特地查了查这个插件的版本,3.2.0就是当前的最新版本了,用起来应该不会有什么大问题了,毕竟就是格式化一个时间。
这里还要操作filename标签内容,如下:
<finalName>${project.artifactId}-${build.time}</finalName>
要将maven.build.timestamp替换成build.time,因为要使用buildnubmer-maven-plugin组件中声明的时间串。
【结果】
非常简单,没有生气,没有分手,谢天谢地。
这个专栏是为了统计那些女朋友问的一些问题,不知道吵了多少架,这次正好记录一下。