2012-06-16 17 views
6

के साथ लंबोक प्ले फ्रेमवर्क 2 के साथ लंबोक एकीकरण के बारे में क्या? मुझे वास्तव में Lombok पसंद है यह मेरे कोड को और अधिक पढ़ने योग्य और कम बॉयलरप्लेट बनाता है। और प्ले फ्रेमवर्क भी अद्भुत है। लेकिन अगर आप उन्हें मिश्रण करने जा रहे हैं तो एक बड़ी परेशानी है।प्ले 2

मुख्य कारण यह है कि प्ले प्रोजेक्ट में स्कैला टेम्पलेट्स डोमेन कक्षाओं से पहले संकलित किए गए हैं। तो Lombok, जो खुद संकलक हैक है उस समय के लिए accessors उत्पन्न नहीं करता है।

सवाल यह है: यदि यह काम करने के किसी भी तरीके से है?

मुझे GoogleGroups में कुछ चर्चाएं मिलीं, लेकिन वे कोई उचित समाधान प्रदान नहीं करते हैं। तो क्या आपको इसके साथ कोई सफलता मिली है?

और .. प्ले फ्रेमवर्क प्रोजेक्ट के लोग कुछ लंबोक-जैसे समाधान प्रदान नहीं करते हैं? वैसे भी प्ले कोड-पीढ़ी के जादू और छाया संकलन से भरा है ... तो, क्यों नहीं?

+0

मैं स्केला और मेरे सिर में spining संदेह का एक बहुत पर देख रहा हूँ: gregate 100% आवश्यक) है। मुझे लगता है कि स्कैला _difficult_ है। और एक और कारण है। स्केल डेवलपर को ढूंढना अभी भी मुश्किल है। –

+0

मेरी राय में जावा से जावा आसान है। (वाईएमएमवी मैंने एम्बेडेड सी से आने वाले एक ही समय में स्कैला और जावा सीखा)। लेकिन आप सही हैं डेवलपर्स को ढूंढना मुश्किल है। – Fabian

+0

@ फ़ैबियन आईएमएचओ, यह नियमित जावा मार्ग से बहुत अलग है। यह स्टेरॉयड के साथ जावा नहीं है, यह एक और दुनिया की तरह है। बस _implicit_ चाल पर एक नज़र डालें। जब मैं स्केल स्रोतों को देखता हूं, तो मुझे मजबूत महसूस होता है "क्या .."। लेकिन यह सिर्फ मेरी व्यक्तिपरक राय है। –

उत्तर

3

तो, कामकाज अपेक्षाकृत सरल है और google groups में प्रस्तावित किया गया था, लेकिन दस्तावेज़ों में कुछ अस्पष्टता है, ठीक है, मैं चरण-दर-चरण का वर्णन करूंगा कि किसी को क्या करना चाहिए।

1. पृथक आपके डोमेन मॉडल logicaly

इसका मतलब है कि डोमेन कक्षाओं विचारों या नियंत्रकों से कुछ भी नहीं बुलाना चाहिए।

2. उप-परियोजना जो डोमेन कक्षाओं

here दिया कुछ जानकारी होती है बनाएँ। उप-प्रोजेक्ट डिफ़ॉल्ट नाटक के प्रोजेक्ट के समान ही है, और इसे इतना कठिन नहीं बना रहा है। मुझे प्ले कंसोल से ऐसा करने के लिए कोई उपकरण नहीं मिला है, इसलिए आपको हाथ से कुछ फ़ोल्डर्स बनाना होगा।

पहले मुख्य प्रोजेक्ट के फ़ोल्डर में उप-प्रोजेक्ट फ़ोल्डर बनाएं। आइए मान लीजिए कि आप इसे डोमेन-डेटा नाम दें। इसके बाद, standart app. layout में वर्णित आवश्यक फ़ोल्डर्स बनाएं। ज्यादातर मामलों में आप उप-फ़ोल्डर बनाया में सरल निर्देशिका वृक्ष बनाना चाहते हैं:

app 
└ models 
    └ myclasses 

अब उप-परियोजना के निर्देशिका वृक्ष के लिए अपने सभी डोमेन कक्षाएं ले जाएँ।

3.Configuration

विन्यास enought सरल हो जाएगा। मुख्य प्रोजेक्ट के प्रोजेक्ट फ़ोल्डर पर जाएं और Build.scala फ़ाइल खोलें। यह एसबीटी बिल्ड सिस्टम के लिए निर्माण स्क्रिप्ट है।

पहले कुछ निर्भरताओं को परिभाषित करें। अपनी बिल्ड फ़ाइल में निम्न स्ट्रिंग जोड़ें:

val domainDependencies = Seq(
    "org.projectlombok" % "lombok" % "0.11.4" 
) 

यह आपके उप-प्रोजेक्ट में लंबोक के जार को जोड़ देगा।अब बनाने के उप-परियोजना परिभाषा:

val domainProject = PlayProject(
          "domain-data", appVersion, domainDependencies, path=file("domain"), mainLang=JAVA 
) 

कहाँ पथ उप-परियोजना के फ़ोल्डर में ले जाना चाहिए।

और अंतिम चरण मुख्य परियोजना कॉन्फ़िगरेशन को उप-प्रोजेक्ट पर निर्भर करने के लिए अद्यतन कर रहा है। निर्भरता प्रत्येक मुख्य परियोजना पुनर्निर्माण पर उप-परियोजना पुनर्निर्माण में शामिल होगी।

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).dependsOn(domainProject) 

सब के बाद साथ टर्मिनल में दिए गए खेलने आदेश मुख्य परियोजना शुरू करते हैं, और परियोजनाओं आदेश लिखें। आपको अपना नया सब-प्रोजेक्ट देखना चाहिए।

4. लाभ

अब यह समय सुरक्षित रूप से लंबोक उपयोग कर अपने मौजूदा कोड refactor करने के लिए है।

+1

या बस स्कैला का उपयोग करने का प्रयास करें। यह केवल महीने के लिए दर्द और बाद में शुद्ध लाभ है। –

+5

प्रश्न जावा और एक विशिष्ट समस्या के बारे में है, लड़के को "या स्कैला का उपयोग" कहने के समान है "या रूबी या पायथन का उपयोग करें"। बिल्कुल रचनात्मक नहीं है। –

0

मेरे एप्लिकेशन "conseillers" (प्ले 2.2.1 परियोजना) है और मेरा मॉडल "Conseiller.java" है/ऐप्स/मॉडल

में

क) सिर्फ दो फ़ोल्डर बनाने और "/ ऐप्स/मॉडल" के लिए कदम नई उप-फ़ोल्डर के लिए फ़ोल्डर:/मॉडल/ऐप्स/मॉडल make a new directory move the folder

ख) create a new sbt file

ग इस नए फ़ोल्डर के लिए एक नया build.sbt फ़ाइल जोड़ने) में build.sbt संशोधित रूट ऐप फ़ोल्डर .dependsOn के साथ (सुनिश्चित नहीं है कि .ag modify root build sbt file

घ) जांच, संकलन, चलाने check

ई) यहाँ और अधिक देखने sbt subprojects documentation on Play site

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