sbt
परियोजनाओं
खोज…
एक ही बिल्ड (सबप्रोजेक्ट) में कई प्रोजेक्ट
कभी-कभी एक निर्माण कई स्रोत निर्देशिकाओं को जोड़ता है, जिनमें से प्रत्येक अपनी स्वयं की 'परियोजना' है। उदाहरण के लिए, आपके पास इस तरह की एक संरचना हो सकती है:
projectName / build.sbt प्रोजेक्ट / src / main / ... test / ... core / src / main / ... test / ... webapp / src / main / ... टेस्ट / ...
उपरोक्त परियोजना में, प्रोजेक्टनेम projectName/src
में कोड को root
परियोजना माना जाता है। दो अन्य मॉड्यूल, या 'सबप्रोजेक्ट', core
और webapp
।
सबप्रोजेक्ट को कॉन्फ़िगर करना रूट प्रोजेक्ट को कॉन्फ़िगर करने के समान है, सिवाय इसके कि प्रोजेक्ट में उपनिर्देशिका निर्दिष्ट है। यह उदाहरण एक मूल परियोजना को दर्शाता है जो एक core
और webapp
परियोजना को एकत्र करता है।
lazy val root = (project in file(".")).aggregate(core,webapp).dependsOn(core, webapp)
lazy val core = (project in file("core"))
lazy val webapp = (project in file("webapp")).dependsOn(core)
file()
करने के लिए पारित मूल्य file()
प्रोजेक्ट रूट के सापेक्ष निर्देशिका हैं।
webapp
परियोजना पर निर्भर करता है core
परियोजना है, जिसमें से निर्देशित होता है dependsOn
खंड है, जो लेता core
ऊपर लाइन पर निर्धारित मूल्य। dependsOn
और lazy
मूल्यांकन सुनिश्चित करते हैं कि परियोजनाएं उपयोग करने से पहले निर्भरताएं उपलब्ध हैं। इस मामले में, webapp
पर निर्भर करता है core
, इसलिए core
संकलन करने के लिए निर्माण के प्रयास से पहले संकलित किया जाएगा webapp
।
aggregate
एक परियोजना में परिभाषित कार्यों को उस परियोजना के लिए उपलब्ध बनाता है जो इसे एकत्र करता है। उदाहरण के लिए, को क्रियान्वित करने compile
में root
परियोजना भी निष्पादित करेंगे compile
में core
और webapp
।
किसी प्रोजेक्ट में मैक्रोज़ कॉन्फ़िगर करें
build.sbt
. build.sbt
फ़ाइल में (या जहां प्रोजेक्ट परिभाषित किया गया है यदि वह किसी अन्य स्थान पर है), तो निम्न सेटिंग जोड़ें:
scalacOptions += "-language:experimental.macros"
उदाहरण के लिए, एक परियोजना को इस तरह परिभाषित किया जा सकता है:
lazy val main = project.in(file(".")) // root project
.settings(scalacOptions += "-language:experimental.macros",
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))
ऊपर दिए गए उदाहरण में, 2.10.x
का पूरा समर्थन प्रदान करने के लिए paradise
प्लगइन को शामिल किया गया है।
प्रदर्शन सेटिंग्स
जब SBT कंसोल में, किसी प्रोजेक्ट के लिए सभी निश्चित सेटिंग्स को सूचीबद्ध करने के लिए:
settings
या, एक उपप्रोजेक्ट प्राप्त करने के लिए (उदाहरण के लिए, webapp
नाम दिया webapp
) सेटिंग्स:
project webapp
settings
ऊपर की पहली पंक्ति विशिष्ट उपप्रोजेक्ट में नेविगेट करती है।
विशिष्ट सेटिंग का मान दिखाने के लिए (उदाहरण के लिए, organization
):
show organization
यह उस सेटिंग का मान प्रदर्शित करेगा।