SBT: Как получить доступ к переменной окружения или конфигурации?

Я публикую во внутреннем репозитории Nexus. У нас есть два РЕПО: "dev" и "production". Разработчики используют dev repo, команда сборки использует производственный репо, к которому они обращаются, от машин в безопасном месте. Я хотел бы добавить переменную окружения или конфигурацию SBT, которая определяет STAGE со значением по умолчанию "dev". На коробках сборки производства STAGE будет переоцениваться до "производства". Как я могу это сделать? Я могу определить этап в файле build.sbt и использовать его в задаче publishTo, я просто не могу понять, как получить значение из среды. Вот что я имею.

val stage = settingKey[String]("stage") 

stage := "dev"

publishTo <<= (version, stage) { (v: String, s: String) =>
  val nexus = "http://my-internal-nexus:8081/nexus/content/repositories/"
  if (v.trim.endsWith("SNAPSHOT"))
    Some("snapshots" at nexus + s + "-snapshots-m2")
  else
    Some("releases"  at nexus + s + "-releases-m2")
}

Ответы

Ответ 1

Вы можете передать этап в системном свойстве и прочитать его в настройке:

stage := sys.props.getOrElse("stage", default = "dev")

Используйте sbt -Dstage=production, чтобы передать это в своей среде сборки.