Play Framework:从Build.sbt阅读版本

Ker*_*ren 5 sbt playframework

我已经看到了一些关于如何从build.sbt读取版本的问题,并且已经提供了很多解决方法来提供如何将build.sbt指向conf/application.conf并且具有指定的版本改为conf/application.conf.

我有一个需要进入版本的Configuration对象.我目前设置如下(如何在play框架和build.sbt中获取应用程序版本),其中来自application.conf的Configuration对象.但是,我仍然希望直接从build.sbt获取它.我怎样才能做到这一点?我是否应该在build.sbt文件上运行bash命令以从那里获取版本?有什么建议?

谢谢!

wat*_*car 8

我们设法通过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")
    
    Run Code Online (Sandbox Code Playgroud)
  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"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在视图(*.html.scala)中,只需显示这些信息

    Version @version.BuildInfo.version - build @version.BuildInfo.gitVersion
    
    Run Code Online (Sandbox Code Playgroud)
  4. 或者您可以通过调用在java或scala代码中使用BuildInfo中的所有值 version.BuildInfo.XX