maven-buildnumber-plugin svn修订版仅在不使用格式时可用

gtr*_*rak 9 java build-automation maven-2 buildnumber-maven-plugin

在使用maven-buildnumber-plugin 1.0 beta 4时,似乎我可以获得svn修订版,除非我<format>在配置中使用标记.一旦我使用<format><item>buildnumber</item>标记,我得到一个自动递增的数字,但它不再对应于svn修订版,我不知道如何取回它.有没有办法在s内使用svn修订号<format>?文档不是很清楚.

jgi*_*d25 10

buildnumber-maven-plugin非常古怪,这可能就是它仍然是测试版的原因.格式是仅适用于那些希望将Java消息格式适用于在大多数情况下,它只能与时间戳和文字字符串有用的物品.如果您不需要时间戳,请在获取Subversion修订号时不要使用format选项.如果您使用该格式,那么就像您指示的那样,它将为您提供一个始终以1而不是SCM版本号递增的内部版本号.

如果你确实需要的时间戳或有其他物品从buildnumber插件的推导,以及Subversion的修订,做好每一个作为单独执行.下面是如何使用插件的两个单独执行来获取Subverison修订版号和构建时间戳的示例:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.0-beta-4</version>
    <executions>
        <execution>
            <id>generate-buildnumber</id>
                <phase>validate</phase>
            <goals>
                <goal>create</goal>
            </goals>
            <configuration>
                <useLastCommittedRevision>true</useLastCommittedRevision>
                <buildNumberPropertyName>buildRevision</buildNumberPropertyName>
            </configuration>
        </execution>
        <execution>
            <id>generate-timestamp</id>
            <phase>validate</phase>
            <goals>
                <goal>create</goal>
            </goals>
            <configuration>
                <format>{0,date,yyyy-MM-dd HH:mm:ss}</format>
                <items>
                    <item>timestamp</item>
                </items>
                <buildNumberPropertyName>buildDateTime</buildNumberPropertyName>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

使这项工作的关键是使用buildNumberPropertyName元素.查看插件的Usage页面,了解有关Java消息格式有用性的更多信息.