在Java应用程序中获取构建ID
-
29-09-2019 - |
题
是否有人有一个简单的建议记录构建ID(在编译时间生成),该ID在运行时的标题栏中显示?
从Eclipse内部构建,我需要的只是ID,然后我可以将其传递给标题。
解决方案
如果您使用的是ANT,则可以轻松设置您的“ JAR”或“软件包”目标,以便它生成一个文件,包括当前时间戳,并将其包含在您的 jar
输出。
如果使用Maven,则有几种方法可以实现类似的东西,例如掉落到蚂蚁使用 ANTRUN插件.
其他提示
如果您使用的是Maven,尤其是如果您希望从SVN的构建编号(尽管它可以通过配置为您生成唯一的构建编号),请查看 BuildNumber-Maven-Plugin.
您只需在pom.xml文件中添加与以下几个类似的摘要:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>true</doCheck>
<doUpdate>true</doUpdate>
</configuration>
</plugin>
然后在POM中使用$ {buildNumber},以参考构建ID。我用它将这个数字写入清单,然后使用Maven-War-Plugin。
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>${buildNumber}</Implementation-Build>
</manifestEntries>
</archive>
如果要使用时间戳进行构建,则可以从JAR或类修改日期或清单文件中获取它。
Maven在JAR中使用模块版本编号填充了一个清单文件。您可以阅读此内容以获取所使用的所有Maven模块的版本。
使“独特ID”的时间戳部分确保每个构建都有不同的ID。
如果您在Eclipse中完全构建,则需要创建一个构建操作,该操作使用所需的信息在源文件夹中生成资源 - 属性文件将很好地完成 - 然后将其传播到您的二进制输出,并且可以在运行时读取您可以做需要显示的事情。
不隶属于 StackOverflow