Maven生成WAR包时自动更新版本号version

Maven插件之buildnumber-maven-plugin

某些情况下(这种情况一般很少见),使用maven构建项目时,需要一个不重复的序列号,比如说,打包时,包名称以当前构建时间结尾,或者每次生成的jar包中包含唯一的序列号,等等;

这个时候,就用到了buildnumber插件,官方网址:

http://mojo.codehaus.org/buildnumber-maven-plugin/index.html

该插件能按照指定的方案生成序列号;首先引入该插件

<!-- 根据系统时间生成唯一序列号 -->
<plugin>  
    <groupId>org.codehaus.mojo</groupId>  
    <artifactId>buildnumber-maven-plugin</artifactId>  
    <version>1.2</version>  
</plugin>

常用以下两个目标:

buildnumber:create(基于SCM版本生成)

buildnumber:create-timestamp(基于系统时间生成)
两个目标都默认绑定在initialize生命周期;其中create-timestamp目标是1.0-beta-5版本新增;

以下分别介绍:

buildnumber:create

其参数介绍如下:

个人认为,使用create-timestamp目标就足够了。

有关"format"和"items"参数的使用,例子如下:

<plugin>  
    <groupId>org.codehaus.mojo</groupId>  
    <artifactId>buildnumber-maven-plugin</artifactId>  
    <version>1.2</version>  
    <configuration>  
        <format>At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.</format>  
        <items>  
            <item implementation="java.lang.Integer">7</item>  
            <item>timestamp</item>  
            <item>a disturbance in the Force</item>  
        </items>  
    </configuration>  
    <executions>  
        <execution>  
            <phase>validate</phase>  
            <goals>  
                <goal>create</goal>  
            </goals>  
        </execution>  
    </executions>  
</plugin>

其他常用配置有

<configuration>  
    <format>{0,number}.{1,number}.{2,number}</format>  
    <items>  
        <item>buildNumber0</item>  
        <item>buildNumber1</item>  
        <item>buildNumber2</item>  
    </items>  
</configuration>
<configuration>  
    <format>{0,date,yyyy-MM-dd HH:mm:ss}</format>  
    <items>  
        <item>timestamp</item>  
    </items>  
</configuration>

产生的 ${buildNumber}值分别如下:

At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.

2.0.3

2005-10-06 2:22:55

其他详细信息,请参考官网

http://mojo.codehaus.org/buildnumber-maven-plugin/usage.html

PS:一个有用的实践,自定义属性,将生成的序列号赋值其中,便于其他插件等地方使用;

<properties>  
    <buildtimestamp>${timestamp}</buildtimestamp>  
</properties>
<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.2</version>
        <executions>
            <execution>
                <phase>validate</phase>
                <goals>
                    <goal>create</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <doCheck>false</doCheck>
            <doUpdate>false</doUpdate>
            <buildNumberPropertiesFileLocation>${project.build.directory}</buildNumberPropertiesFileLocation>
            <buildNumberPropertyName>verNum</buildNumberPropertyName>
            <timestampFormat>{0,date,yyyyMMddHHmmss}</timestampFormat>
              <items>
                <item>timestamp</item>
              </items>
        </configuration>
    </plugin>

<build>
        <finalName>${project.artifactId}-${project.version}.v${verNum}-${timestamp}</finalName>
        ...
    <build>


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值