前言

当我们需要为应用程序打包时,有时需要在打包的文件名中加入时间戳,以区分不同版本的应用程序包。本文将介绍如何在Maven的pom.xml文件中配置,在打包时自动为文件名加上时间戳。通过本文的介绍,您将能够更加方便地管理应用程序包,并快速找到特定版本的应用程序包。

方法

第一种:使用Maven自带的功能

  1. 在pom.xml文件中加入以下配置

    <properties>
      <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
    </properties>
    
  2. 在plugin中引入

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

    Maven自带时间戳使用${maven.build.timestamp},但是时区是UTC。

    如果要使用GMT+8,就需要插件提供支持,以下两个插件可以实现。

第二种:使用buildnubmer-maven-plugin

  1. 在pom.xml中引入插件

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.4</version>
        <configuration>
            <timestampFormat>yyyyMMdd</timestampFormat>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>create-timestamp</goal>
                </goals>
            </execution>
        </executions>
        <inherited>false</inherited>
    </plugin>
    
  2. 在plugin中引入

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

第三种:使用build-helper-maven-plugin

  1. 在pox.xml引入插件

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.9.1</version>
        <executions>
            <execution>
                <id>timestamp-property</id>
                <goals>
                    <goal>timestamp-property</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <name>current.time</name>
            <pattern>yyyyMMdd-HHmmss</pattern>
            <timeZone>GMT+8</timeZone>
        </configuration>
    </plugin>
    
  2. 在plugin中引入

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