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
यह उस सेटिंग का मान प्रदर्शित करेगा।