在 SBT 中解析某些变量并将其存储到资源文件以便在运行时可用的最简单方法是什么?
更具体地说:我怎样才能获得 sbt-git
插件设置的 version
值,并使其不仅作为工件/程序集 JAR 名称的一部分可用,而且也在资源目录中,所以我可以在运行时访问它,例如在输出上打印,或通过我的 Web 服务的某个版本端点作为服务版本返回?
最佳答案
这是我的代码,用于从纯 git
获取提交并将其与项目版本一起存储在属性文件 path/to/version.properties
可用在包 path.to
中:
resourceGenerators in Compile <+= Def.task {
import scala.sys.process._
val file = (resourceManaged in Compile).value / "path" / "to" / "version.properties"
val gitHash = "git rev-parse HEAD".!!
val gitStatus = "git status".!!
IO.writeLines(file, Seq(
s"project.version = ${version.value}",
s"git.hash = $gitHash",
s"build.date = ${new java.util.Date()}") ++
gitStatus.split("\n").map("#" + _))
Seq(file)
}⏎
关于scala - 将 SBT 变量写入资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43212986/