2014-10-16 11 views
15

मैं एक आंतरिक नेक्सस भंडार में प्रकाशित करता हूं। हमारे पास दो प्रतिनिधि हैं, "देव" और "उत्पादन"। डेवलपर देव रेपो का उपयोग करते हैं, बिल्ड टीम उत्पादन रिपो का उपयोग करती है जिसे वे एक सुरक्षित क्षेत्र में मशीनों से एक्सेस करते हैं। मैं एक पर्यावरण चर या एसबीटी कॉन्फ़िगर जोड़ना चाहता हूं जो "dev" के डिफ़ॉल्ट मान के साथ STAGE को परिभाषित करता है। उत्पादन निर्माण बक्से पर STAGE को "उत्पादन" से अधिक कर दिया जाएगा। मैं यह कैसे कर सकता हूँ? मैं अपनी build.sbt फ़ाइल में चरण को परिभाषित करने में सक्षम हूं और प्रकाशित करने के लिए इसे कार्य में उपयोग कर रहा हूं, मैं बस यह नहीं समझ सकता कि पर्यावरण से मूल्य कैसे प्राप्त किया जाए। यही सब कुछ मेरे पास है।एसबीटी: पर्यावरण चर या कॉन्फ़िगरेशन तक कैसे पहुंचे?

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

[स्केल में पर्यावरण चर को कैसे पढ़ा जाए] के संभावित डुप्लिकेट [http://stackoverflow.com/questions/9997292/how-to-read-environment-variables-in-scala) –

उत्तर

28

आप एक प्रणाली संपत्ति में मंच गुजरती हैं और एक सेटिंग में पढ़ सकते हैं:

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

उपयोग sbt -Dstage=production अपने निर्माण वातावरण में इस पारित करने के लिए।

+2

यह उत्तर उस मामले को कवर नहीं करता है 'STAGE' एक पर्यावरण परिवर्तनीय है –

संबंधित मुद्दे