我已经看到了很多关于如何从build.sbt读取版本的问题,并且已经提供了很多解决方法来提供如何将build.sbt指向conf / application.conf和具有conf / application.conf中指定的版本。
我有一个需要进入版本的Configuration对象。我目前设置如下(How get application version in play framework and build.sbt),其中来自application.conf的配置对象。但是,我仍然希望直接从build.sbt获取它。我怎样才能做到这一点?我是否应该在build.sbt文件上运行bash命令以从那里获取版本?有什么建议吗?
谢谢!
答案 0 :(得分:7)
我们设法通过build-info获取信息,这里有一些详细的配置。
添加插件(我们还包括sbt-git,因为我们也需要git版本)到project/plugins.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.8.4")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.5.0")
在build.sbt
enablePlugins(BuildInfoPlugin)
enablePlugins(GitVersioning)
buildInfoKeys := Seq[BuildInfoKey](organization, name, version, BuildInfoKey.action("gitVersion") {
git.formattedShaVersion.?.value.getOrElse(Some("Unknown")).getOrElse("Unknown") +"@"+ git.formattedDateVersion.?.value.getOrElse("")
})
buildInfoPackage := "version"
在视图(* .html.scala)中,只需按
显示这些信息Version @version.BuildInfo.version - build @version.BuildInfo.gitVersion
或者您可以通过调用version.BuildInfo.XX
答案 1 :(得分:1)
也许不是你想要的但是前段时间我使用了这样的解决方法(我需要版本用于其他部署步骤):我在主应用目录中创建了类似app-version.cfg
的文件,所以我可以在{{{ 1}}喜欢:
build.sbt
并在Unix bash:
version := scala.io.Source.fromFile("app-version.cfg").mkString