मैं कई एसबीटी 0.13 है/2.2 परियोजनाओं (वेबसाइट) खेलें। वे सभी बहु-मॉड्यूल हैं क्योंकि वे कुछ सामान्य कार्यक्षमता साझा करते हैं। यह उनके प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइलों को जटिल और लगभग समान दोनों बनाता है, लेकिन काफी नहीं।मैं एसबीटी (प्ले) बहु-परियोजनाओं में साझा कॉन्फ़िगरेशन का उपयोग कैसे करूं?
मैं परियोजनाओं में इन कॉन्फ़िगरेशन फ़ाइलों के जितना संभव हो सके साझा करने में सक्षम होना चाहता हूं (लगातार प्ले अपडेट 5+ वेबसाइटों को शाही दर्द तक अद्यतित करते हैं, सभी लगभग समान-उल्लेख- परियोजनाओं में निर्भरता सूची विकसित करना)।
build.properties और plugins.sbt परियोजनाओं भर में समान हैं और एक सरल स्क्रिप्ट के द्वारा ओवरराइट किया जा सकता। महान।
Build.scala जटिल काम है - मैं बहुत की तरह एक साझा आधार वर्ग को लागू करना चाहते हैं: कि Build.scala में क्या
abstract class MyBuildBase extends Build { ... }
:
object ApplicationBuild extends MyBuildBuild { ... }
आदेश में यह किसी भी बनाने के लिए बिल्कुल समझ में, MyBuildBase.scala को परियोजनाओं में साझा करने की आवश्यकता है। यह svn: बाहरी के साथ किया जा सकता है, जो निर्देशिकाओं पर काम करता है। जिसका मतलब है कि Build.scala संकलित होने पर मुझे किसी भी तरह से इस साझा निर्देशिका को सुलभ बनाने की आवश्यकता है (अन्यथा एसबीटी जोर से शिकायत करता है)।
पढ़ना http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Classpaths.html और http://www.scala-sbt.org/0.13.0/docs/Getting-Started/Full-Def.html ऐसा लगता है इस तरह संभव हो जाना चाहिए।
हालांकि, यह वास्तव में अस्पष्ट है कि वास्तव में यह प्रोजेक्ट/प्रोजेक्ट/Build.scala फ़ाइल में वास्तव में इसे प्राप्त करने के लिए क्या करना है - मुझे का उदाहरण नहीं मिल रहा है "एक एसबीटी बिल्ड फ़ाइल जिसका उद्देश्य है sbt बिल्ड फ़ाइल और "" निर्माण में कुछ अतिरिक्त स्रोत फ़ाइलों को शामिल करें।
कोई सुझाव?
उत्कृष्ट सुझाव। बाहर निकलता है एसवीएन बाहरी फाइलों को संभाल सकता है न कि केवल v1.6 के बाद से निर्देशिकाएं, इसलिए मैंने इसे इस तरह हल किया क्योंकि यह मेरे विशेष मामले में आसान था। हालांकि, आपके उत्तर में वास्तव में पूछे गए प्रश्न को शामिल किया गया है, इसलिए इसे इस तरह चिह्नित करना। – Jxtps