繁体   English   中英

Play Framework:从Build.sbt阅读版本

[英]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获取信息,这里有一些详细的配置。

  1. 添加插件(我们还包括sbt-git,因为我们也需要git版本)到project/plugins.sbt

     addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.8.4") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.5.0") 
  2. 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" 
  3. 在视图(* .html.scala)中,只需显示这些信息

     Version @version.BuildInfo.version - build @version.BuildInfo.gitVersion 
  4. 或者您可以通过调用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM