2014-10-16 28 views
15

Dahili bir Nexus deposuna yayın yapıyorum. İki repomuz var, "dev" ve "üretim". Geliştiriciler dev repo'yu kullanırlar, yapım ekibi güvenli bir alanda makinelerden eriştikleri üretim repolarını kullanır. STAGE öğesini "dev" varsayılan değeriyle tanımlayan bir ortam değişkeni veya SBT yapılandırması eklemek istiyorum. Üretim tesislerinde STAGE "üretim" e devredilecekti. Bunu nasıl yapabilirim? Build.sbt dosyamdaki sahneyi tanımlayabiliyorum ve bunu publishTo görevinde kullanabiliyorum, sadece çevreden gelen değeri nasıl alacağımı anlayamıyorum. İşte sahip olduğum şey.SBT: Ortam değişkeni veya yapılandırmasına nasıl erişilir?

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") 
} 
+0

[Scala'da ortam değişkenleri nasıl okunur] 'ın olası kopyası (http://stackoverflow.com/questions/9997292/how-to-read-environment-variables-in-scala) –

cevap

28

Bir sistem özelliğinde sahne geçmek ve bir ortama okuyabilirsiniz:

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

kullanın sbt -Dstage=production sizin yapı ortamında bu geçmesine.

+2

Bu yanıt, buradaki durumu kapsamaz "STAGE" bir ortam değişkeni –

İlgili konular