【Maven】-- 打包添加时间戳的两种方法

发布时间:2024年01月23日

一、需求

? ? ? 在执行 ?mvn clean package -Dmaven.test.skip=true 后,生成的 jar 包带有自定义系统时间。

二、实现

方法一:使用自带属性(不推荐)

? ? 使用系统时间戳,但有一个问题,就是默认使用 UTC+0 的时区。举例:当前时北京时间,而使用该方法时,生成的时间是 0时区的时间,而不是 UTC+8? 的北京时间。

? ? ?pom.xml 配置如下

(1) 在 properties 中添加属性

<properties>
<maven.build.timestamp.format>yyyyMMdd_HHmmss</maven.build.timestamp.format>
</properties>

(2)在打包 plugin 中引用该属性

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

方法二:使用插件实现(推荐)

在?<build></build> 模块中引入依赖,并配置即可。

<build>
           <finalName>${project.artifactId}_${project.version}_${build.time}</finalName>
            <!-- 时间插件 -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <id>timestamp-property</id>
                        <goals>
                            <goal>timestamp-property</goal>
                        </goals>
                        <configuration>
                            <name>build.time</name>
                            <pattern>yyyyMMdd_HHmmss</pattern>
                            <locale>zh_CN</locale>
                            <timeZone>GMT+8</timeZone>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

如果 pom.xml 语法检测?${build.time} 有问题,不用管,正常打包即可。

文章来源:https://blog.csdn.net/high2011/article/details/135772042
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。