在Java应用程序中获取构建ID

在Java应用程序中获取构建ID,java,build,compile-time,unique-id,buildnumber-maven-plugin,Java,Build,Compile Time,Unique Id,Buildnumber Maven Plugin,是否有人对记录运行时显示在应用程序标题栏中的构建ID(在编译时生成)有简单的建议 从Eclipse内部构建,我所需要的只是ID,然后我可以将它传递到标题 如果您完全在Eclipse中构建,您需要创建一个生成操作,该操作在源文件夹中生成一个资源,其中包含您所需的信息—属性文件将很好—然后传播到您的二进制输出,并可在运行时读取,之后您可以执行需要显示的操作。如果要为生成使用时间戳,您可以从jar或类修改日期或清单文件中获得 Maven使用jar中的模块版本号填充清单文件。您可以阅读本文以获得您正在使

是否有人对记录运行时显示在应用程序标题栏中的构建ID(在编译时生成)有简单的建议


从Eclipse内部构建,我所需要的只是ID,然后我可以将它传递到标题

如果您完全在Eclipse中构建,您需要创建一个生成操作,该操作在源文件夹中生成一个资源,其中包含您所需的信息—属性文件将很好—然后传播到您的二进制输出,并可在运行时读取,之后您可以执行需要显示的操作。

如果要为生成使用时间戳,您可以从jar或类修改日期或清单文件中获得

Maven使用jar中的模块版本号填充清单文件。您可以阅读本文以获得您正在使用的所有maven模块的版本


将时间戳作为“唯一id”的一部分可以确保每个构建都有不同的id。

如果您使用的是Ant,您可以轻松设置“jar”或“package”目标,以便它生成一个包含当前时间戳的文件,并将其包含在
jar
输出中


如果使用Maven,有几种方法可以实现类似的功能,例如使用Ant。

如果您使用Maven,特别是如果您希望从SVN获得内部版本号(尽管它可以通过配置为您生成唯一的内部版本号),请查看

您只需向pom.xml文件中添加一个类似于以下内容的代码段:


org.codehaus.mojo
buildnumber maven插件
1.0-beta-3
验证
创造
真的
真的
然后稍后在pom中使用${buildNumber}引用构建id。我使用它将该编号写入清单,就像这样,使用maven war插件


真的
${buildNumber}

您正在使用哪个构建工具?我只是在eclipse中构建它(使用Android的ADT)。因此,我目前没有生成生成id(我知道)。我需要先生成一个(maven会这样做吗?),然后在运行时从应用程序访问它。这篇文章有一个很好的端到端描述:也很有用:嗨,可能有点晚了,但你可以试试:${maven.build.timestamp}由Nicolas Toublanc在