SBT-buildinfo
Я только что написал sbt-buildinfo .
После установки плагина:
lazy val root = (project in file(".")).
enablePlugins(BuildInfoPlugin).
settings(
buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion),
buildInfoPackage := "foo"
)
Edit: приведенный выше фрагмент был обновлен, чтобы отразить более новую версию sbt-buildinfo.
Генерирует foo.BuildInfo
объект с любым желаемым параметром, настраивая buildInfoKeys
.
Специальный подход
Я собирался создать плагин для этого, (я написал), но вот быстрый скрипт для генерации файла:
sourceGenerators in Compile <+= (sourceManaged in Compile, version, name) map { (d, v, n) =>
val file = d / "info.scala"
IO.write(file, """package foo
|object Info {
| val version = "%s"
| val name = "%s"
|}
|""".stripMargin.format(v, n))
Seq(file)
}
Вы можете получить свою версию как foo.Info.version
.