我正在使用 Java 和 Swing 应用程序框架开发桌面应用程序。我有一个关于盒子的应用程序,我想让那个盒子包含一些正在测试的版本的指示。我的偏好是以自动方式更改该值。我正在使用 CruiseControl 构建应用程序,触发对 SVN 的提交。
其他人使用什么机制来完成这项工作?是否有一个 about box 版本号库或一组与 ant 相关的工具,我可以在我的构建过程中放置它们?
我不是在寻找部署选项或无论如何自动检查更新或类似的东西。我只是希望能够在 about 框中询问测试人员是什么版本并获得可靠的答案。
最佳答案
我将通过声明我使用 Apache Maven 来开始这篇文章。 build 。您也可以使用 Ant 或其他工具做类似的事情,但这是我使用 maven 所做的。
我发现处理此问题的最佳方法是使用项目的版本加上 subversion 修订作为内部版本号。从 Maven 中,您可以包括以下内容。这将为您提供作为 ${scm.revision} 的 subversion 修订号。
<build>
<plugins>
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<executions>
<execution>
<id>getting-scm.revision</id>
<phase>validate</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
之后,我将其用作 jar 文件 list 的一部分作为实现版本。
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifestEntries>
<Implementation-Version>${this.version}.${scm.revision}</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
这样做的好处是您可以使用以下代码从代码中访问它:
Package p = getClass().getPackage();
String version = p.getImplementationVersion();
这会为您提供完整的内部版本号,例如“1.0.13525”,其中最后一个数字是颠覆修订版。有关设置的更多信息,您可以查看完整的 blog post我在这个问题上做了一段时间。
关于java - 在 Java 应用程序中处理版本号的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770364/