相关疑难解决方法(0)

如何从ant构建脚本中查找最新的git commit hash

如何从ant构建脚本中查找最新的git commit hash?

我目前正在开发一个新的开源项目,我存储在github上.我想扩展我现有的ANT构建文件,以允许我创建编号的构建.我想我会用"ant buildnum -Dnum = 12"之类的东西启动构建.

我希望生成的jar在它的清单文件中有两个关键信息:

  • build.number = 12
  • build.gitcommit =

我知道如何创建build.number行.但是,我不确定最好的ant管道来查找最新的git commit hash,这是我想填写的值.

git ant

55
推荐指数
4
解决办法
2万
查看次数

从`git describe`派生应用程序构建版本 - 如何获得相对简单的字符串?

UPDATE

我看到这个问题已经变得有点流行了.现在已经是我公认的Git使用年限了,从那以后我学到了很多东西.,拜托之前,不管你会从这个Q&A得知事情对你的Git冒险阅读最后一段.


我想编写应用程序构建版本,该版本是从我所在的GIT分支名称(构建时)和自分支分歧后的提交数量自动派生的.我相信这对我的GIT存储库中的任何提交都是唯一的吗?分支名称是唯一的,并且提交沿着分支相互链接?如果我标记提交,我也可以使用该标记作为前缀.

在某种程度上git describe做我想要的,但它不包括我所在的分支名称,它包括缩写提交SHA-1哈希,我认为我不需要它,因为它不会添加任何东西到字符串的熵并且可能是多余的(我可能在这里错了,所以请纠正我).

我有什么选择?我在这里想的是正确的方向吗?当我有更多关于软件开发的重要事项时,我只是厌倦了为版本添加数字.

顺便说一下,我从来没有用肮脏的工作树建造.即我在构建公共发布之前总是将更改提交到存储库.

我现在知道 Git分支只是提交引用,因此,许多分支(和标记!)可能指向单个提交.因此,问题"这个提交属于哪个分支/谎言" 对Git 来说并不完全有效.Git 跟踪你正在使用的"当前"分支 - 它已经为你检查过的分支 - 但同时任何数量的其他分支可能指向同一个提交,并且可以说没有任何一个分支可以被选择为"main"除非您想要表示当前已签出到磁盘的那个.请阅读本页面上以下答案进行详细说明.

versioning git auto-versioning

18
推荐指数
4
解决办法
1万
查看次数

将当前git commit id注入Java webapp

我们有一个git存储库,其中包含一些相关Java WAR和JAR的源代码.如果Java代码可能以某种方式:

System.err.println("I was built from git commit " + commitID);
Run Code Online (Sandbox Code Playgroud)

(显然,真正的代码可能会将其放入HTTP标头,在启动时记录它,或者其他什么,现在不重要)

我们正在使用Ant来构建(至少对于生产构建,似乎有些程序员在Eclipse内部进行测试,我知道的更少)二进制文件.

有没有一种规范的方法可以在构建时将当前git checkout的提交ID添加到我们的Java中?如果没有,使用Ant构建的人可以建议他们如何做,我们将看看是否出现了规范的解决方案?我确信我可以完全用整块布料来创造一些东西,但这似乎是一个可重复使用的构件,所以我宁愿不这样做.

java git ant

17
推荐指数
3
解决办法
8441
查看次数

标签 统计

git ×3

ant ×2

auto-versioning ×1

java ×1

versioning ×1