Play Framework:从Build.sbt阅读版本

时间:2016-02-02 17:17:08

标签: playframework sbt

我已经看到了很多关于如何从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命令以从那里获取版本?有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:7)

我们设法通过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

  5. 在java或scala代码中使用BuildInfo中的所有值

答案 1 :(得分:1)

也许不是你想要的但是前段时间我使用了这样的解决方法(我需要版本用于其他部署步骤):我在主应用目录中创建了类似app-version.cfg的文件,所以我可以在{{{ 1}}喜欢:

build.sbt

并在Unix bash:

version := scala.io.Source.fromFile("app-version.cfg").mkString