4

有没有人有一个简单的建议来记录在运行时显示在应用程序标题栏中的构建 ID(在编译时生成)?

从 Eclipse 中构建,我只需要 ID,然后我可以将它传递给标题。

4

4 回答 4

4

如果您使用 Maven,特别是如果您想要 SVN 的内部版本号(尽管它可以通过配置为您生成唯一的内部版本号),请查看buildnumber-maven-plugin

You simply add a snippet similar to the following to your pom.xml file:

        <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>

Then use ${buildNumber} later on in your pom to refer to the build id. I use it to write that number to the manifest like so, using the maven-war-plugin.

                <archive>
                    <manifest>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    </manifest>
                    <manifestEntries>
                        <Implementation-Build>${buildNumber}</Implementation-Build>
                    </manifestEntries>
                </archive>
于 2010-11-30T14:56:45.490 回答
3

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

如果使用 Maven,有几种方法可以实现类似的效果,例如使用antrun 插件下拉到 Ant 。

于 2010-11-30T14:51:19.820 回答
2

如果要为构建使用时间戳,可以从 jar 或类修改日期或 MANIFEST 文件中获取。

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

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

于 2010-11-30T14:34:27.080 回答
0

如果您完全在 Eclipse 中构建,您需要创建一个构建操作,该操作在您的源文件夹中生成一个包含您需要的信息的资源 - 一个属性文件会很好 - 然后传播到您的二进制输出,并且可以在运行后读取你可以做你需要展示的东西。

于 2010-11-30T14:32:45.060 回答