1. 程式人生 > >maven打包加時間戳方法總結

maven打包加時間戳方法總結

默認 eat tid -m sta .gz create 兩個 false

基於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文件中,打個包試試,是不是自己加上了時間戳 ^-^

maven打包加時間戳方法總結