我看到诸如如何使用 maven 从颠覆中获取修订号之类的问题?但是对于清单中要使用的实际字段、版本号和存储库 URL(即,显示它在主干上还是在分支上),是否有任何标准(事实上或其他)?我已经看到使用的 Implementation-Version,有和没有前导“r”(用于修订),我也看到了 Implementation-Build: 的使用。
编辑我删除了不应该存在的 maven 标签。我的问题是关于 jar 内容,而不是工具本身。
我看到诸如如何使用 maven 从颠覆中获取修订号之类的问题?但是对于清单中要使用的实际字段、版本号和存储库 URL(即,显示它在主干上还是在分支上),是否有任何标准(事实上或其他)?我已经看到使用的 Implementation-Version,有和没有前导“r”(用于修订),我也看到了 Implementation-Build: 的使用。
编辑我删除了不应该存在的 maven 标签。我的问题是关于 jar 内容,而不是工具本身。
不幸的是,jar 清单本身没有任何版本编号标准。
但是,实际上,还有另一种自动更新修订号的标准方法。您可以使用svn:keywords在每次提交后获取文件中的当前修订号。有$Revision$
用于修订替换和$HeadURL$
存储库 URL 替换的属性。您只需要将以下字符串放入文件中并将此文件置于版本控制之下:
$Revision$ $HeadURL$
如果您使用 Maven 动态创建清单,我建议将以下内容放入version.properties
文件中:
revision=$Revision$
repourl=$HeadURL$
然后包含在pom.xml
语句中(maven 应该启用属性插件):
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>version.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
然后您将能够将修订号和 repo url 放入清单:
<manifest>
<attribute name="Revision" value="${revision}" />
<attribute name="Repository URL" value="${repourl}" />
</manifest>
另请注意,您需要显式启用svn:keywords
使用颠覆属性才能在文件中获取$Revision$
并$HeadURL$
替换为实际值。如果您决定使用version.properties
,则需要运行以下命令:
svn propset svn:keywords Revision version.properties
svn propset svn:keywords HeadURL version.properties