Generate version files from the version sbt setting
This commit is contained in:
parent
3d9ea4415f
commit
0e3b31d7c2
5 changed files with 40 additions and 7 deletions
|
|
@ -27,8 +27,8 @@ class ConfigSpec extends AkkaSpec(ConfigFactory.defaultReference(ActorSystem.fin
|
||||||
{
|
{
|
||||||
import config._
|
import config._
|
||||||
|
|
||||||
getString("akka.version") should ===("2.4-SNAPSHOT")
|
getString("akka.version") should ===(ActorSystem.Version)
|
||||||
settings.ConfigVersion should ===("2.4-SNAPSHOT")
|
settings.ConfigVersion should ===(ActorSystem.Version)
|
||||||
|
|
||||||
getBoolean("akka.daemonic") should ===(false)
|
getBoolean("akka.daemonic") should ===(false)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import akka.{ AkkaBuild, Formatting, OSGi, Dependencies }
|
import akka.{ AkkaBuild, Formatting, OSGi, Dependencies, Version }
|
||||||
import com.typesafe.tools.mima.plugin.MimaKeys
|
import com.typesafe.tools.mima.plugin.MimaKeys
|
||||||
|
|
||||||
AkkaBuild.defaultSettings
|
AkkaBuild.defaultSettings
|
||||||
|
|
@ -12,3 +12,5 @@ Dependencies.actor
|
||||||
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-actor").value
|
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-actor").value
|
||||||
|
|
||||||
spray.boilerplate.BoilerplatePlugin.Boilerplate.settings
|
spray.boilerplate.BoilerplatePlugin.Boilerplate.settings
|
||||||
|
|
||||||
|
Version.versionSettings
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
# This is the reference config file that contains all the default settings.
|
# This is the reference config file that contains all the default settings.
|
||||||
# Make your edits/overrides in your application.conf.
|
# Make your edits/overrides in your application.conf.
|
||||||
|
|
||||||
akka {
|
# Akka version, checked against the runtime version of Akka. Loaded from generated conf file.
|
||||||
# Akka version, checked against the runtime version of Akka.
|
include "version"
|
||||||
version = "2.4-SNAPSHOT"
|
|
||||||
|
|
||||||
|
akka {
|
||||||
# Home directory of Akka, modules in the deploy directory will be loaded
|
# Home directory of Akka, modules in the deploy directory will be loaded
|
||||||
home = ""
|
home = ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import java.util.Locale
|
||||||
|
|
||||||
object ActorSystem {
|
object ActorSystem {
|
||||||
|
|
||||||
val Version: String = "2.4-SNAPSHOT"
|
val Version: String = akka.Version.current // generated file
|
||||||
|
|
||||||
val EnvHome: Option[String] = System.getenv("AKKA_HOME") match {
|
val EnvHome: Option[String] = System.getenv("AKKA_HOME") match {
|
||||||
case null | "" | "." ⇒ None
|
case null | "" | "." ⇒ None
|
||||||
|
|
|
||||||
31
project/Version.scala
Normal file
31
project/Version.scala
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
package akka
|
||||||
|
|
||||||
|
import sbt._
|
||||||
|
import sbt.Keys._
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate version.conf and akka/Version.scala files based on the version setting.
|
||||||
|
*/
|
||||||
|
object Version {
|
||||||
|
|
||||||
|
def versionSettings: Seq[Setting[_]] = inConfig(Compile)(Seq(
|
||||||
|
resourceGenerators <+= generateVersion(resourceManaged, _ / "version.conf",
|
||||||
|
"""|akka.version = "%s"
|
||||||
|
|"""),
|
||||||
|
sourceGenerators <+= generateVersion(sourceManaged, _ / "akka" / "Version.scala",
|
||||||
|
"""|package akka
|
||||||
|
|
|
||||||
|
|object Version {
|
||||||
|
| val current: String = "%s"
|
||||||
|
|}
|
||||||
|
|""")
|
||||||
|
))
|
||||||
|
|
||||||
|
def generateVersion(dir: SettingKey[File], locate: File => File, template: String) = Def.task[Seq[File]] {
|
||||||
|
val file = locate(dir.value)
|
||||||
|
val content = template.stripMargin.format(version.value)
|
||||||
|
if (!file.exists || IO.read(file) != content) IO.write(file, content)
|
||||||
|
Seq(file)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue