首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将当前git提交id注入到Java webapp中

将当前git提交id注入到Java webapp中
EN

Stack Overflow用户
提问于 2009-06-19 22:42:58
回答 3查看 11.4K关注 0票数 19

我们有一个git存储库,其中包含一些相关Java WAR和JAR的源代码。如果Java代码能以某种方式实现以下功能就好了:

代码语言:javascript
复制
System.err.println("I was built from git commit " + commitID);

(很明显,真正的代码可能会把它放到HTTP头中,在启动时记录它,或者其他什么,这现在并不重要)

我们正在使用Ant构建二进制文件(至少对于生产构建,似乎有些程序员是在Eclipse内部进行测试的,我对此了解得更少)。

有没有一种规范的方法可以在构建时将当前git签出的提交id获取到我们的Java中?如果不是,那么使用Ant构建的人们可以建议他们如何构建吗?我们将看看是否会出现一个规范的解决方案?我确信我可以完全从整个布料中发明一些东西,但这看起来像是一个可重用的构建块,所以我不想这样做。

EN

回答 3

Stack Overflow用户

发布于 2009-06-20 17:52:38

可以使用以下命令获取最后一次提交的SHA

代码语言:javascript
复制
git rev-parse HEAD

但通常使用它要有用得多

代码语言:javascript
复制
git describe

它会给你一些类似这样的东西:

代码语言:javascript
复制
v0.7.0-185-g83e38c7

如果你有标签,这是可行的-它会告诉你,你当前签出的最后一个有效标签有多少个提交,加上那个提交的部分SHA,所以你以后可以用它来建立一个签出的基础。在大多数情况下,您可以像使用SHA一样使用此标识符,但它的可读性更强。

票数 14
EN

Stack Overflow用户

发布于 2012-03-16 04:21:43

我编写了一个Ant任务来使用git (没有JGit命令行应用程序)来获取构建编号,请参阅jgit-buildnumber-ant-task。然后,您可以将此构建编号存储在MANIFEST.MF文件中,并在运行时从类路径中获取它。

票数 3
EN

Stack Overflow用户

发布于 2009-06-19 22:52:36

git rev-parse HEAD将打印您可能需要的内容(例如,HEAD commit的id )。您可以让ant使用这个id作为静态常量来生成一个简单的Java类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1020354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档