基於Maven的項目,發布時需要打包,如tar.gz。web項目打成war格式包。每次打包時希望自己加上時間戳,假如我的項目名是myproject,默認打包后名為myproject.war。而我希望的名字為myproject-1.0.0-20160217。方便以后對包進行查找與管理,如何實現這種效果呢?
1 使用maven自帶的屬性
設置時間戳格式:在pom.xml文件中加入以下配置
<properties>
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>
在打包plugin中引用該屬性
<finalName>
${project.artifactId}-${project.version}_${maven.build.timestamp}
</finalName>
Maven自帶時間戳使用${maven.build.timestamp},但是時區是UTC。
如果要使用GMT+8,就需要插件提供支持,以下兩個插件可以實現。
2 使用buildnubmer-maven-plugin
<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>
默認屬性是timestamp,在打包plugin中引用該屬性
<finalName>
${project.artifactId}-${project.version}_${timestamp}
</finalName>
3 使用build-helper-maven-plugin
<build>
<finalName>ProjectName-${current.time}</finalName>
<plugins>
<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>
</plugins>
</build>
將以上的幾種方式配置分別加入到自己的pom.xml文件中,打個包試試,是不是自己加上了時間戳 ^-^