基于git的build.gradle版本控制

han*_*zer 4 git groovy gradle

我是一个Minecraft modder,我使用ForgeGradle插件来构建我的mod.

我目前正在尝试根据我的git版本和哈希设置版本控制方案.在arch linux的PKGBUILD系统下,我会使用:

pkgver() {
  cd $_pkgbase
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
Run Code Online (Sandbox Code Playgroud)

这将最终得到一些东西 r392.2cc2ebc

我正在尝试以下方面:

ext.revision = 'git rev-list --count HEAD'.execute()
ext.hash     = 'git rev-parse --short HEAD'.execute()
version      = "r${revision.text}.${hash.text}"
Run Code Online (Sandbox Code Playgroud)

这让我几乎得到了我所需要的东西r70?.11ae542?; 不知道如何摆脱?版本的每个部分.Gradle 2.0,建议?

由于Peter Niederwieser的评论引起的进一步调查 导致我使用info标志运行构建,看起来似乎新行已经陷入文件名:

Executing task ':reobf' (up-to-date check took 0.004 secs) due to:
  Output file build/libs/CreepyPastaCraft-1.7.x-r70
.11ae542
-universal.jar has changed.
Run Code Online (Sandbox Code Playgroud)

han*_*zer 9

好吧,由于彼得拒绝将他的评论转化为答案,我将回答我自己的问题,以便其他人也希望这样做:

ext.revision = 'git rev-list --count HEAD'.execute().text.trim()
ext.hash = 'git rev-parse --short HEAD'.execute().text.trim()
version = "r${revision}.${hash}"
Run Code Online (Sandbox Code Playgroud)

这与我的问题中的bash表达结果相同.