![](/img/trans.png)
[英]Play! framework: Change application version in build.sbt is not taken into account
[英]Play Framework: Reading Version from Build.sbt
我已经看到了一些关于如何从build.sbt读取版本的问题,并且已经提供了很多解决方法来提供如何将build.sbt指向conf / application.conf并且具有指定的版本改为conf / application.conf。
我有一个需要进入版本的Configuration对象。 我目前已经将它设置为这样( 如何在play framework和build.sbt中获取应用程序版本 ),其中来自application.conf的Configuration对象。 但是,我仍然希望直接从build.sbt获取它。 我怎样才能做到这一点? 我是否应该在build.sbt文件上运行bash命令以从那里获取版本? 有什么建议?
谢谢!
我们设法通过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
在java或scala代码中使用BuildInfo中的所有值version.BuildInfo.XX
也许不是你想要的但是前段时间我使用了这样的解决方法(我需要版本用于其他部署步骤):我在主app目录中创建了app-version.cfg
文件,所以我可以在build.sbt
使用它:
version := scala.io.Source.fromFile("app-version.cfg").mkString
在Unix bash中:
version=`cat app-version.cfg`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.