在我的scala程序的sbt构建期间,我将当前的sha1哈希写入文件,以便我可以从应用程序中轻松使用它。这就是我的build.sbt文件中的样子:
val dummy = {
val sha1 = Process("git rev-parse HEAD").lines.head
IO.write(file("conf/version.conf"), s"""sha1="$sha1"""")
}
问题在于,现在构建具有必须安装git命令行的依赖性,否则它将失败,因为它无法执行git命令。
是否有可能在sbt中忽略构建期间发生的错误,并以某种方式将“未知”作为sha1哈希? sbt文档说的是“失败”http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Tasks.html,但我不确定这是否适用于我的问题。
答案 0 :(得分:1)
sbt
文件是正常的Scala文件。只需将sha1
表达式的结果分配给try / catch
:
val sha1 = try {
Process("git rev-parse HEAD").lines.head
} catch { case e: NonFatal => "unknown" }
IO.write(file("conf/version.conf"), s"""sha1="$sha1"""")