diff --git a/project/AkkaBuild.scala b/project/AkkaBuild.scala index 7411e88504..0472523bf0 100644 --- a/project/AkkaBuild.scala +++ b/project/AkkaBuild.scala @@ -4,6 +4,7 @@ package akka +import java.io.FileReader import java.io.{FileInputStream, InputStreamReader} import java.util.Properties import java.time.format.DateTimeFormatter @@ -13,7 +14,6 @@ import java.time.ZoneOffset import sbt.Keys._ import sbt._ import org.scalafmt.sbt.ScalafmtPlugin.autoImport._ - import scala.collection.breakOut object AkkaBuild { @@ -39,12 +39,25 @@ object AkkaBuild { } def akkaVersion: String = { - sys.props.getOrElse("akka.build.version", "2.6-SNAPSHOT") match { + val default = "2.6-SNAPSHOT" + sys.props.getOrElse("akka.build.version", default) match { case "timestamp" => s"2.6-$currentDateTime" // used when publishing timestamped snapshots + case "file" => akkaVersionFromFile(default) case v => v } } + def akkaVersionFromFile(default: String): String = { + val versionFile = "akka-actor/target/classes/version.conf" + if (new File(versionFile).exists()) { + val versionProps = new Properties() + val reader = new FileReader(versionFile) + try versionProps.load(reader) finally reader.close() + versionProps.getProperty("akka.version", default).replaceAll("\"", "") + } else + default + } + lazy val rootSettings = Def.settings( Release.settings, UnidocRoot.akkaSettings,