如何使用build-number插件在Maven中显示SVN版本

时间:2011-02-02 13:07:15

标签: maven build-numbers buildnumber-maven-plugin

如何使用内部版本号插件显示svn版本和时间戳。

目前我有以下

<plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <configuration>
                <format>At {0,time} on {0,date} : SVN Revision {1,number}</format>
                <items>
                    <item>timestamp</item>
                    <item>buildNumber</item>
                </items>
                <doCheck>false</doCheck>
                <doUpdate>false</doUpdate>
            </configuration>
        </plugin>
    </plugins>

显示如下:At 8:02:51 AM on Feb 2, 2011 : SVN Revision 1

但我的svn修订版是1123.如果我注释掉<format><items>,我会得到正确的svn版本号。如何显示两者?

由于

4 个答案:

答案 0 :(得分:3)

正如documentation所说,如果您使用特殊的<item> buildNumber,它不会使用SVN修订版,而是创建/读取特殊的属性文件。

如果您确实想使用SVN修订版,则需要遵循usage页面中第一个例子中指定的配置。其他示例旨在说明不使用SVN修订版的用法,而是使用本地版本号(如在持续集成版本的情况下)。

答案 1 :(得分:3)

更新至buildnumber-maven-plugin的{​​{3}}并使用scmVersion

<items>
    <item>timestamp</item>
    <item>scmVersion</item>
</items>

受到version 1.2的极大帮助。

答案 2 :(得分:1)

我最终使用buildnumber-maven-plugin没有格式参数来获取svn修订版,日期使用:

<properties>
    <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
    <build.date>${maven.build.timestamp}</build.date>
</properties>

然后,在过滤后的资源中:

r${buildNumber}, ${build.date}

答案 3 :(得分:0)

这有关系吗?

“buildNumber插件将更新您的本地存储库。这样做是因为'svn info'从本地存储库中获取修订版,并且不一定与远程存储库中的修订版相同。您可能应该处理在任何情况下创建构建之前的这些更改。同样,可以使用-Dmaven.buildNumber.doUpdate = false来抑制此行为。“

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