转载

Maven打包时自动增加时间戳

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

Maven打包时自动增加时间戳

使用Maven自带的时间戳

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

  1. 设置时间戳格式: 在 pom.xml 文件中添加时间格式配置

<properties>
    <maven.build.timestamp.format>yyyy_MM_dd_HH</maven.build.timestamp.format>
</properties>
  1. 在Maven打包的plugin中引用该属性

<build>
    <finalName>${project.artifactId}_${project.version}_${maven.build.timestamp}</finalName>
    ...
</build>

Maven打包时自动增加时间戳

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

使用build-helper-maven-plugin

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

  1. 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>
  1. 设置 finalName

<build>
    <finalName>${project.artifactId}_${project.version}_${package.time}</finalName>
</build>

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

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

⬇⬇⬇   你好,我是CainGao。一线大数据开发者,关注我一起交流场景实现 ⬇⬇

Maven打包时自动增加时间戳

原文  http://mp.weixin.qq.com/s?__biz=MzU1MTk1Nzk4Mw==&mid=2247483821&idx=2&sn=cb173d402efdd9f17e373633c3b7c3a3
正文到此结束
Loading...