में सेटिंग पर निर्भर कैसे करें I ए और बी कहें, 2 कस्टम एसबीटी सेटिंग्स कैसे घोषित कर सकते हैं, ए पर निर्भर सामग्री के साथ Global
कॉन्फ़िगरेशन स्कोप में बी को परिभाषित करें, कई कॉन्फ़िगरेशन स्कॉप्स में एक अलग परिभाषित करें इस तरह से बी के परिणामस्वरूप मूल्य प्रत्येक कॉन्फ़िगरेशन में भिन्न है भले ही बी केवल एक बार परिभाषित किया गया हो?"वर्तमान" कॉन्फ़िगरेशन
नीचे दिए गए उदाहरण targetHost
के लिए विचार करें, अन्य config में से remote
में अलग ढंग से परिभाषित है, और scriptContent
यह पर निर्भर करता है:
object MyBuild extends Build {
lazy val remote = config("remote") describedAs ("configuration for remote environement ")
lazy val targetHost = settingKey[String]("private hostname of master server")
lazy val scriptContent = settingKey[String]("Some deployment script")
lazy val root: Project = Project("meme", file(".")).
settings(
name := "hello",
targetHost := "localhost",
targetHost in remote := "snoopy",
scriptContent := s"""
# some bash deployment here
/usr/local/uberDeploy.sh ${targetHost.value}
"""
)
}
मैं scriptContent
चाहते हैं दोनों config कार्यक्षेत्रों में मान अलग है, लेकिन क्योंकि यह निर्भर करता है
> scriptContent
[info]
[info] # some bash deployment here
[info] /usr/local/uberDeploy.sh localhost
[info]
> remote:scriptContent
[info]
[info] # some bash deployment here
[info] /usr/local/uberDeploy.sh localhost
[info]
जबकि मैं निम्नलिखित प्राप्त करने के लिए करना चाहते हैं: Global
दायरे में targetHost
पर अपने मूल्य हमेशा एक ही है:
> scriptContent
[info]
[info] # some bash deployment here
[info] /usr/local/uberDeploy.sh localhost
[info]
> remote:scriptContent
[info]
[info] # some bash deployment here
[info] /usr/local/uberDeploy.sh snoopy
[info]
मुझे लगता है कि आप स्पष्ट रूप से कार्य का दायरा निर्दिष्ट करना होगा:
अपेक्षित परिणाम अर्जित करता है। उदाहरण के लिए, दूसरे में एक 'सरल' लक्ष्यहोस्ट 'में' रिमोट में लक्ष्यहोस्ट 'के साथ दोनों स्कॉप्स में दो' स्क्रिप्ट सामग्री 'लागू करें। – marios