मैं उनके बीच निर्भरता के साथ कई मॉड्यूल विकसित कर रहा हूं, और उन सभी के साथ एक आईडीईए परियोजना में काम करना चाहता हूं। मैं sbt बिल्ड परिभाषाओं से IDEA प्रोजेक्ट जेनरेट करने के लिए sbt-idea का उपयोग कर रहा हूं , जो व्यक्तिगत प्रोजेक्ट्स के लिए बहुत अच्छा काम करता है। कई-मॉड्यूल मामले में, हालांकि, मैंने अब तक जिन चीजों की कोशिश की है, वे काफी काम नहीं करते हैं:
स्वतंत्र रूप से प्रत्येक मॉड्यूल के लिए एक आईडिया .iml फ़ाइल बनाने के लिए sbt-idea का उपयोग करें ; फिर स्क्रैच से एक मास्टर आईडीईए प्रोजेक्ट बनाएं, इसमें उन मॉड्यूल को जोड़ें। इस मॉड्यूल स्रोतों को एक ही विंडो में सभी संपादन योग्य बनाता है, लेकिन उन्हें बीच निर्भरता ट्रैक नहीं किया जाता है (ताकि भीतर कुछ स्रोत से नेविगेट करने की कोशिश कर foo परियोजना में कुछ करने के लिए बार मेरे आयातित पुस्तकालय संस्करण के लिए ले जाता है बार , न कि स्थानीय स्रोतों )।
Sbt मल्टी-प्रोजेक्ट बिल्ड (उर्फ सबप्रोजेक्ट) का उपयोग करें , जहां पैरेंट प्रोजेक्ट के Build.scala में कुछ चीजें शामिल हैं:
lazy val foo = Project(id = "foo", base = file("foo"))
lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo)
यह लगभग काम करता है, उस sbt- विचार में ट्रैक किए गए सबप्रोजेक्ट्स के बीच निर्भरता के साथ एक मास्टर IDEA प्रोजेक्ट उत्पन्न करता है। हालांकि दो कैविएट हैं:
- यह एक sbt प्रतिबंध लगता है कि उपप्रोजेक्ट को मास्टर प्रोजेक्ट के उपनिर्देशिका में रहना चाहिए (अर्थात,
file("../foo")
अनुमति नहीं है)। यह वास्तव में मैं क्या चाहता हूं (क्या होगा अगर एक मॉड्यूल - जैसे कि "बर्तन" या "कॉमन्स" पैकेज - दो अलग-अलग मास्टर प्रोजेक्ट में उपयोग किया जाता है?) लेकिन मैं इसके साथ रह सकता हूं। - मेरे एक उपप्रोजेक्ट का अपना उपप्रोजेक्ट है; मुझे यकीन नहीं है कि sbt खुद इन नेस्टेड प्रोजेक्ट्स के साथ सही तरीके से व्यवहार करता है, लेकिन किसी भी मामले में इन्हें sbt-idea द्वारा अनदेखा किया जाता है। जाहिर है मुझे मास्टर प्रोजेक्ट में पुनरावर्ती रूप से शामिल होने के लिए नेस्टेड सबप्रोजेक्ट चाहिए।
संक्षेप में: मैं उन मॉड्यूल को इकट्ठा करना चाहता हूं जो पहले से ही सुविधाजनक संपादन के लिए ट्रैक निर्भरता वाले एक बड़े IDEA प्रोजेक्ट में सबप्रोजेक्ट कर सकते हैं । मैं यह कैसे कर सकता हूं? धन्यवाद!