Playframework 如何将提交哈希添加到播放模板?
我想将提交散列放入Play框架模板文件中,以便通过REST-GET调用查看构建信息 在sbt中,我可以获得git提交散列和git分支名称,在构建过程中是否有任何方法将此信息放入模板文件中 构建.sbtPlayframework 如何将提交哈希添加到播放模板?,playframework,sbt,playframework-2.1,playframework-2.2,Playframework,Sbt,Playframework 2.1,Playframework 2.2,我想将提交散列放入Play框架模板文件中,以便通过REST-GET调用查看构建信息 在sbt中,我可以获得git提交散列和git分支名称,在构建过程中是否有任何方法将此信息放入模板文件中 构建.sbt name := "my-project" val branch = "git rev-parse --abbrev-ref HEAD".!!.trim val commit = "git rev-parse HEAD".!!.trim val buildTime = (new java.text
name := "my-project"
val branch = "git rev-parse --abbrev-ref HEAD".!!.trim
val commit = "git rev-parse HEAD".!!.trim
val buildTime = (new java.text.SimpleDateFormat("yyyyMMdd-HHmmss")).format(new java.util.Date())
version := "%s-%s-%s".format(branch, commit, buildTime)
我使用了一个名为sbt buildinfo的sbt插件来实现这一点。看看答案。从技术上讲,它奏效了。事实上,每次有任何变化,它都会重新加载整个项目。也许他们现在已经克服了这个问题?尝试一下sbt buildinfo: 用法示例:
lazy val root = (project in file("."))
.enablePlugins(BuildInfoPlugin)
.settings(
buildInfoKeys := Seq[BuildInfoKey](
<whateverYouWant>,
BuildInfoKey.action("commit") {
scala.sys.process.Process("git rev-parse HEAD").!!.trim
}
)
)
lazy val root=(文件(“.”)中的项目)
.enablePlugins(BuildInfoPlugin)
.设置(
BuildInfoKey:=Seq[BuildInfoKey](
,
BuildInfoKey.action(“提交”){
scala.sys.process.process(“git rev解析头”)。!!.trim
}
)
)
添加我的丑陋解决方案以将git头哈希添加到构建:(除了Bob Kuhar的回答中的链接)
我已经有了“lazy val root”,所以这就是它现在的样子
lazy val root = (project in file(".")).
enablePlugins(PlayScala).
enablePlugins(BuildInfoPlugin).
settings(
buildInfoKeys := Seq[BuildInfoKey](
name, version, scalaVersion, sbtVersion,
"hostname" -> java.net.InetAddress.getLocalHost().getHostName(),
"whoami" -> System.getProperty("user.name"),
"buildTimestamp" -> new java.util.Date(System.currentTimeMillis()),
"gitHash" -> new java.lang.Object(){
override def toString(): String = {
try {
val extracted = new java.io.InputStreamReader(
java.lang.Runtime.getRuntime().exec("git rev-parse HEAD").getInputStream())
(new java.io.BufferedReader(extracted)).readLine()
} catch { case t: Throwable => "get git hash failed" }
}}.toString()
),
buildInfoPackage := "buildpkg"
)
如果能稍微扩展一下以包含一些代码,那就太好了。我现在还不清楚如何使用buildinfo来实现这一点(从自述文件中)。使用最新的sbt(1.0.2),我得到:
error:value!!不是字符串的成员
您可能需要查看sbt git stamp: