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