2013-03-02 8 views
5

के तहत विभिन्न मुख्य वर्गों के लिए अलग जार एक ही स्रोत पेड़ के नीचे एकाधिक मुख्य कक्षाओं के लिए एसबीटी का उपयोग करके अलग जार फ़ाइलों को उत्पन्न करने का सबसे अच्छा तरीका क्या है?एक ही स्रोत

project_root/ 
     src/main/scala/ 
        A/*.scala files for main class A 
        B/*.scala files for main class B 
       resources/ 
      test/scala/ 
        A/ 
        B/ 
     lib/ 
     project/Build.scala 
     build.sbt 

सूचना दोनों ए और बी एक ही आधार है:

परियोजना निर्देशिका कुछ इस तरह लग रहा है। Build.scala फ़ाइल के कंक्रीट उदाहरण सहायक होंगे।

+0

क्या आप क्रमशः ए और बी के लिए एक जार चाहते हैं, दोनों सामान्य आधार कक्षाएं हैं? –

+0

हां। 2 जार फाइलें जिनमें सामान्य कक्षाएं हैं। – deepkimo

+0

क्या आपको कोई अच्छा समाधान मिला है? – bunnyjesse112

उत्तर

1

आपको Getting Started Multi Project पर एक नज़र रखना चाहिए। मैंने नीचे एक साधारण उदाहरण बनाया:

import sbt._ 

object MyBuild extends Build { 

    lazy val projA = Project("projA", file("a")) 

    lazy val projB = Project("projB", file("b")) 
} 
+0

यह उस मामले के लिए काम नहीं करेगा जिसका मैं वर्णन कर रहा हूं, क्योंकि दोनों परियोजनाओं का एक ही आधार है। – deepkimo

+0

आप एक तीसरी परियोजना बना सकते हैं जिसमें सामान्य clsasses शामिल हैं और "क्लासपाथ निर्भरता" के अंतर्गत दिए गए लिंक में वर्णित 'dependOn' का उपयोग करें। या आप दो परियोजनाओं को एक ही आधार पथ के साथ बनाने की कोशिश कर सकते हैं और फिर प्रत्येक परियोजनाओं में निर्माण से कुछ वर्गों को बाहर कर सकते हैं (मैंने यह कोशिश नहीं की है, इसलिए यह सुनिश्चित न करें कि यह काम करेगा या नहीं)। यहां एक उत्तर दिया गया है कि निर्माण से जावा वर्गों को कैसे बाहर निकालना है ताकि आप इसे अपनी आवश्यकताओं के अनुरूप अनुकूलित कर सकें। http://stackoverflow.com/a/8896784/355499 –

संबंधित मुद्दे