【问题标题】:accessing SBT settings from scala source从 scala 源访问 SBT 设置
【发布时间】:2014-12-29 23:37:37
【问题描述】:

我想知道是否可以从主要的 scala 源中读取设置键的值。

例如,我的build.sbt 包含:

name := "hello"

version := "0.1"

我想在我的 scala 源文件(src/main/scala/*.scala)中读取 versionname 的值。这可能吗?

【问题讨论】:

  • 不是直接的。可能有一个 SBT 插件会在您的源代码中执行替换(当然有这样的 Maven 插件)

标签: scala sbt


【解决方案1】:

你需要 sbt-buildinfo (https://github.com/sbt/sbt-buildinfo) 插件

buildInfoSettings

sourceGenerators in Compile <+= buildInfo

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

buildInfoPackage := "hello"

它将生成包含您需要的所有属性的 scala 文件,您可以从 scala 源访问它们

package hello

/** This object was generated by sbt-buildinfo. */
case object BuildInfo {
  /** The value is "helloworld". */
  val name = "helloworld"
  /** The value is "0.1-SNAPSHOT". */
  val version = "0.1-SNAPSHOT"
  /** The value is "2.10.3". */
  val scalaVersion = "2.10.3"

  .....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2013-11-15
    • 2012-12-13
    • 1970-01-01
    • 2013-12-20
    • 2020-12-17
    相关资源
    最近更新 更多