Текущая ситуация
Настройка моего проекта выглядит примерно так:
Проект: корневой (build.sbt
, version.sbt
)
Подпроект: проект A (build.sbt
) Подпроект: проект B (build.sbt
)
В моем version.sbt
у меня есть val
, который считывает версию для использования из внешнего файла json следующим образом:
version in ThisBuild := findVersion
lazy val findVersion: String =
parse(Source.fromFile("../buildProperties.json").mkString).map(_ \\ "version").map(_ map (_.asString)) match {
case Right(Some(x) :: _) => x
case _ => throw new IllegalArgumentException("Unable to read buildProperties.json")
}
Эта проблема
Теперь мне нужно использовать эту версию для определения зависимостей внутри подпроектов (проект A и проект B). Так что я либо:
- необходимо получить доступ к
val findVersion
корневого проекта изbuild.sbt
проекта A и проекта B ИЛИ - нужно использовать версию напрямую, как это в build.sbt проекта A и проекта B:
libraryDependencies += "ext-lib" % "com.fbaierl" % version.value % Provided
. Но это приводит к исключениюerror: 'value' can only be used within a task or setting macro, such as :=, +=, ++=, Def.task, or Def.setting.
.
Есть ли способ добиться того, что мне нужно?
version.sbt
в каталогproject
? - person pme   schedule 24.06.2019