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

标签 java maven-2 build-automation buildnumber-maven-plugin

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

最佳答案

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

如果您确实需要时间戳或从内部版本号插件以及 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 元素。查看插件的 Usage有关 Java 消息格式的用途的更多信息的页面是。

关于java - maven-buildnumber-plugin svn 修订仅在不使用格式时可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319248/

相关文章:

java - ASP.NET/.net 新手问题 - Java Hotspot 等效项?

maven-2 - 将 <fileSets> 与 Maven 程序集一起使用

build - 编程定义 : What exactly is 'Building' .

android - CircleCI 使用绝对路径,而不是相对路径

java - 使用 CriteriaQuery 时如何限制结果

java - Android: java.net.DatagramSocket.bind: 无效参数异常

Java - Hibernate 和 DB2 - 正确的顺序使用

maven-2 - reactor 根的 Maven 变量

Maven <mirror>标签,外部:* parameter的含义

.net - MSBuild 扩展包与 MSBuild 社区任务