我们的初创公司有大约 5 个 scala 项目,我们经常需要将更新推送到生产环境。由于我们的节奏很快,我很快发现 sbt 发布插件的开销太大,因此一整天都在推出 SNAPSHOTS。我们在云中有一个构建服务器(Jenkins)——它也可以用来生成发布,但即使这样也会减慢我们的速度。
有没有什么好的插件可以做一些事情,比如抓取 git checkout 哈希和用户(连同日期)作为版本?
我们的初创公司有大约 5 个 scala 项目,我们经常需要将更新推送到生产环境。由于我们的节奏很快,我很快发现 sbt 发布插件的开销太大,因此一整天都在推出 SNAPSHOTS。我们在云中有一个构建服务器(Jenkins)——它也可以用来生成发布,但即使这样也会减慢我们的速度。
有没有什么好的插件可以做一些事情,比如抓取 git checkout 哈希和用户(连同日期)作为版本?
多亏了 sbt 的Process API,你实际上只需要很少的东西就可以在你的版本中包含 git 哈希:
version in ThisBuild := "1.0-" + Process("git rev-parse HEAD").lines.head
用于git rev-parse --short HEAD
git 哈希的简短版本。
当然,为了更好地重用,您可以将Process
部件移动到自己的设置中,然后执行以下操作:
version in ThisBuild <<= gitSha("1.0-" + _)
tl;dr使用sbt-git插件。
执行模块并开始使用enablePlugins(GitVersioning)
插件build.sbt
自动生成您的版本。