前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven打包时自动增加时间戳

Maven打包时自动增加时间戳

作者头像
CainGao
发布2020-04-14 09:21:37
5.8K1
发布2020-04-14 09:21:37
举报
文章被收录于专栏:指尖数虫

当前场景下,某些包需要上传到服务器进行执行。使用的是Maven进行管理的方式,但是多次修改后也不能修改包版本。所以希望通过jar包的时间戳来确定当前的版本。直接在包名上添加时间戳,如:springboot-0.0.1-SNAPSHOT-20190919.jar,能够简单方便的进行查找与管理。

使用Maven自带的时间戳

在maven2.1.0-M1之后maven内置了一个特殊变量maven.build.timestamp,所以我们可以基于该变量进行直接打包。

  1. 设置时间戳格式: 在pom.xml文件中添加时间格式配置
代码语言:javascript
复制
<properties>
    <maven.build.timestamp.format>yyyy_MM_dd_HH</maven.build.timestamp.format>
</properties>
  1. 在Maven打包的plugin中引用该属性
代码语言:javascript
复制
<build>
    <finalName>${project.artifactId}_${project.version}_${maven.build.timestamp}</finalName>
    ...
</build>

该方式使用的是maven自带的时间戳 ${maven.build.timestamp},但是该时间是UTC时区。如果需要自定义时区,可以选择使用插件来实现。

使用build-helper-maven-plugin

build-helper-maven-plugin允许用户使用不同的地区设置自定义的时间戳格式。

  1. pom.xml的plugin中增加build-helper-maven-plugin配置
代码语言:javascript
复制
<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>
  1. 设置finalName
代码语言:javascript
复制
<build>
    <finalName>${project.artifactId}_${project.version}_${package.time}</finalName>
</build>

把maven.build.timestamp修改成了自定义的package.time,进行打包测试,时间戳与当前时间一致

把时间戳添加到包名上通过包名直接能够查看到打包的时间,方便包的查找,管理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 指尖数虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档