小编典典

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

java

在使用maven-buildnumber-plugin 1.0 beta
4时,除非我<format>在配置中使用标签,否则似乎可以得到svn修订版。使用<format><item>buildnumber</item>标记后,我会得到一个自动递增的数字,但是它不再与svn修订相对应,并且我不知道如何取回它。有没有办法在svn中使用svn版本号<format>?该文档不是很清楚。


阅读 181

收藏
2020-11-16

共1个答案

小编典典

buildnumber-maven-
plugin非常古怪,这可能就是为什么它仍然是beta的原因。该格式仅适用于您希望将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>

完成这项工作的关键是使用buildNumberPropertyName元素。请查看插件的“
用法”页面,以获取有关Java消息格式的用途的更多信息。

2020-11-16