Ответ 1
Вы можете передать этап в системном свойстве и прочитать его в настройке:
stage := sys.props.getOrElse("stage", default = "dev")
Используйте sbt -Dstage=production
, чтобы передать это в своей среде сборки.
Я публикую во внутреннем репозитории 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")
}
Вы можете передать этап в системном свойстве и прочитать его в настройке:
stage := sys.props.getOrElse("stage", default = "dev")
Используйте sbt -Dstage=production
, чтобы передать это в своей среде сборки.