有没有人有一个简单的建议来记录构建ID(在编译时生成),该ID在运行时显示在应用程序的标题栏中?
在Eclipse中构建,我需要的只是ID,然后我可以将它传递给标题。
答案 0 :(得分:4)
如果您正在使用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>
答案 1 :(得分:3)
如果您正在使用Ant,则可以轻松设置“jar”或“package”目标,以便生成包含当前时间戳的文件,并将其包含在jar
输出中。
如果使用Maven,有几种方法可以实现类似的功能,例如使用the antrun plugin下载到Ant。
答案 2 :(得分:2)
如果要为构建使用时间戳,可以从jar或类修改日期或MANIFEST文件中获取该时间戳。
Maven使用jar中的模块版本号填充MANIFEST文件。您可以阅读此内容以获取您正在使用的所有maven模块的版本。
使时间戳成为“唯一ID”的一部分,可确保每个构建都具有不同的ID。
答案 3 :(得分:0)
如果您在Eclipse中完全构建,则需要创建一个构建操作,在源文件夹中使用您需要的信息生成资源 - 属性文件可以很好地执行 - 然后传播到二进制输出并可以读取在运行时,您可以执行显示它所需的操作。