“ 当前场景下,某些包需要上传到服务器进行执行。使用的是Maven进行管理的方式,但是多次修改后也不能修改包版本。所以希望通过jar包的时间戳来确定当前的版本。直接在包名上添加时间戳,如: springboot-0.0.1-SNAPSHOT- 20190919 .jar ,能够简单方便的进行查找与管理。 ”
使用Maven自带的时间戳
在maven2.1.0-M1之后maven内置了一个特殊变量 maven.build.timestamp ,所以我们可以基于该变量进行直接打包。
设置时间戳格式: 在 pom.xml 文件中添加时间格式配置
<properties> <maven.build.timestamp.format>yyyy_MM_dd_HH</maven.build.timestamp.format> </properties>
在Maven打包的plugin中引用该属性
<build> <finalName>${project.artifactId}_${project.version}_${maven.build.timestamp}</finalName> ... </build>
该方式使用的是maven自带的时间戳 ${maven.build.timestamp} ,但是该时间是UTC时区。如果需要自定义时区,可以选择使用插件来实现。
build-helper-maven-plugin 允许用户使用不同的地区设置自定义的时间戳格式。
pom.xml 的plugin中增加 build-helper-maven-plugin 配置
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>timestamp-property</id> <goals> <goal>timestamp-property</goal> </goals> <configuration> <name>build.time</name> <pattern>MM/dd/yyyy hh:mm aa</pattern> <locale>en_US</locale> <timeZone>America/Detroit</timeZone> </configuration> </execution> </executions> </plugin>
设置 finalName
<build> <finalName>${project.artifactId}_${project.version}_${package.time}</finalName> </build>
把 maven.build.timestamp 修改成了自定义的 package.time ,进行打包测试,时间戳与当前时间一致
把时间戳添加到包名上通过包名直接能够查看到打包的时间,方便包的查找,管理。
⬇⬇⬇ 你好,我是CainGao。一线大数据开发者,关注我一起交流场景实现 ⬇ ⬇⬇