【问题标题】:How to access SBT settings from Java code in PlayFramework?如何从 PlayFramework 中的 Java 代码访问 SBT 设置?
【发布时间】:2013-11-15 14:37:11
【问题描述】:

我有一个 PlayFramework 应用程序,在build.sbt 中有一个nameversion

如果我运行游戏控制台,我可以通过输入 nameversion 来访问此信息。

如何从应用程序内的 Java 代码中获取这些信息?我似乎在Play.application() 中找不到任何有用的方法,而且我也无法在文档中找到它。

【问题讨论】:

  • 请否决投票的原因?
  • 您可能希望将其重命名为“如何从 Java 代码访问 SBT 设置?”
  • 你用的是 Play 2.2,对吧?

标签: java playframework-2.0 sbt sbt-buildinfo


【解决方案1】:

为此,您可以使用 SBT 插件BuildInfo

添加到项目/plugins.sbt:

addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.2.5")

然后构建.sbt:

buildInfoSettings

sourceGenerators in Compile <+= buildInfo

buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion)

buildInfoPackage := "hello"

现在您可以使用静态方法访问构建信息:

package controllers;

import play.*;
import play.mvc.*;

import views.html.*;

public class Application extends Controller {

    public static Result index() {
        return ok(hello.BuildInfo.name());//the name of the application as output
    }

}

【讨论】:

  • 我知道这行得通,但是hello 到底是什么?它是Controller 的静态成员吗​​?是什么使它在 index 方法中可用?
  • 可以在 build.sbt 中设置生成类的包 buildInfoPackage := "hello"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
相关资源
最近更新 更多