2013-03-27 7 views
11

के साथ ग्रहण में कई परियोजनाओं का उपयोग करना मेरे पास एक्लिप्स में एक मौजूदा प्रोजेक्ट है (चलिए इसे "NotPlayProj" कहते हैं) जिसमें अभी भी बहुत सारे जावा कोड विकास के अधीन हैं। मैंने प्ले 2.1.0 का उपयोग करके एक नई ग्रहण परियोजना बनाई है (चलिए इसे "प्लेप्रोज़" कहते हैं)। मेरा लक्ष्य PlayProj में NotPlayProj से कोड का उपयोग करना है और किसी भी प्रोजेक्ट में ग्रहण और प्ले कंपाइलर नोटिस परिवर्तन दोनों हैं।प्ले फ्रेमवर्क 2.1.x

यदि मैं PlayProj के गुणों में जाता हूं और प्रोजेक्ट टैब के माध्यम से NotPlayProj जोड़ता हूं, तो विधि पूर्ण होने और समावेशन ग्रहण के भीतर काम करता है, लेकिन प्ले संकलन परिणाम नहीं देखता है। मैंने प्ले मॉड्यूल को देखा है और जो मुझे चाहिए वो ऐसा नहीं लगता है।

क्या ऐसा करने का कोई तरीका है, आदर्श रूप से NotPlayProj को संशोधित किए बिना?

संपादित करें --- मैं http://www.playframework.com/documentation/2.0/SBTDependencies देखा है जो दिखाता है कि कैसे PlayProj/lib निर्देशिका में NotPlayProj से एक जार निर्यात करने के लिए है, लेकिन यह हर बार के लिए मैन्युअल निर्यात NotPlayProject परिवर्तन की आवश्यकता है। मुझे संदेह है कि प्रबंधित निर्भरता अनुभाग को कवर करना है, लेकिन मैंने पहले कभी एसबीटी का उपयोग नहीं किया है और इसलिए शायद कुछ बुनियादी याद आ रहा है।

+0

क्या आपने यह पोस्ट पढ़ा था, शायद यह मदद करता है: http://stackoverflow.com/questions/10226919/reload-app-on-custom-file-change-in-playframework – adis

+0

संदर्भ विज्ञापन के लिए धन्यवाद। यह काफी नहीं है जो मुझे चाहिए, लेकिन यह सामान्य ballpark में है। मुझे लगता है कि मुझे स्क्रैच से एसबीटी सीखना है। –

+0

क्या आप यह देखने के लिए देख रहे हैं http://stackoverflow.com/questions/10090829/how-to-reference-a-different-java-project-in-eclipse? – th3byrdm4n

उत्तर

2

आपको जो चाहिए वह निरंतर एकीकरण है।

जेनकींस पर एक नज़र डालें: http://jenkins-ci.org/ आपको एक निरंतर एकीकरण सर्वर स्थापित करना चाहिए और आपको आवश्यक बिल्डों को कस्टमाइज़ करना चाहिए।

उदाहरण: आपके पास कुछ सर्वर में चल रहे PlayProj हैं, इसे NoPlayProj नामक अन्य प्रोजेक्ट से कुछ नवीनतम कक्षाओं का उपयोग करने में सक्षम होना चाहिए।

पुनर्निर्माण एक जरूरी है, डाउनटाइम शून्य जैसी चीजें हासिल करना मुश्किल है (कम से कम मुझे नहीं लगता कि यह वही है जो आप पूछ रहे हैं)। चरणों आप जेनकींस के साथ स्वचालित करने के लिए की जरूरत है:

1 - निर्माण और NoPlayProj के नवीनतम संस्करण

2 जो कुछ repositorium में स्थित है को तैनात - निर्माण और PlayProj के नवीनतम संस्करण को जो कुछ में स्थित है को तैनात रिपोजिटोरियम और इसमें आपकी आखिरी प्रतिबद्धता भी शामिल है जहां आपने NoPlayProj

के साथ मौजूद निर्भरता को अद्यतन किया है। जेनकिंस में बहुत जटिल निर्माण और तैनाती निर्देश कॉन्फ़िगर नहीं किए जा सकते हैं। यह आपको थोड़ा तेज करना चाहिए। यदि संभव हो तो दोनों परियोजनाओं को मैवेनाइज करना भी एक और सुझाव होगा, इससे आप निर्भरताओं को आसानी से प्रबंधित करने में मदद करेंगे।

बस एक बात स्पष्ट करने के लिए, आप ने कहा: My goal is to use code from NotPlayProj in PlayProj and have both Eclipse and the Play compiler notice changes in either project.

खैर जिस क्रम में आप पर अमल बनाता है कि तुम क्या जब तक आप निर्भरता को अपडेट करते ही इससे पहले कि आप कोड के लिए प्रतिबद्ध करना चाहता हूँ में निर्भर हो जाएगा।

एक आखिरी बात, यदि आप तैनात नहीं करना चाहते हैं तो आपको ऐसा करने की ज़रूरत नहीं है, इसलिए आप जेनकिन्स नौकरियां बना सकते हैं, इस तरह से आप केवल निर्माण करते हैं। जेनकींस के साथ आप बहुत सारी चीज़ें कर सकते हैं, आप स्वयं की कुछ सहायता स्क्रिप्ट निष्पादित कर सकते हैं जो आपको अतिरिक्त कार्यक्षमता प्रदान कर सकता है।

मुझे आशा है कि यह उपयोगी था।

0

हालांकि मैंने कभी भी नाटक ढांचे का उपयोग नहीं किया है, मुझे लगता है कि एक प्रारूप है कि नाटक ढांचे और ग्रहण दोनों समझते हैं और यह मेवेन है।http://www.playframework.com/modules/maven-head/home

1

PlayProj के साथ काम करते समय ग्रहण को नोटप्लेप्रोज़ में परिवर्तन देखने के लिए, PlayProj की कॉन्फ़िगरेशन को बदलने के लिए पर्याप्त है। गुण-> जावा बिल्ड पथ -> प्रोजेक्ट्स -> निर्भरता के रूप में NotPlayProj जोड़ें।

प्ले कंपाइलर हैंडल निर्भरताओं को चलाने के लिए कोई सरल तरीका नहीं है, जब तक कि आप इसे जार के रूप में पैकेज न करें। साधारण चींटी कार्य (बाहरी उपकरण विन्यास -> चींटी निर्माण) की कॉन्फ़िगरेशन पर विचार करें, जो आपकी जार फ़ाइल की प्रतिलिपि बनायेगा। कुंजी या बटन दबाने से कार्य ट्रिगर किया जा सकता है।

प्रबंधित निर्भरताओं के साथ, हर बार जब आप NotPlayProj में परिवर्तन करते हैं, तो आपको इसे मैन्युअल रूप से पुनर्निर्माण करना होगा। आइवी/मेवेन को अपने स्थानीय भंडार में निर्भरता डालने दें। उसके बाद Play आपके स्थानीय भंडार से नवीनतम स्नैपशॉट लेगा।

दोनों दृष्टिकोणों के लिए कुछ प्रयासों की आवश्यकता है। हो सकता है कि आप पाइथन स्क्रिप्ट्स पर एक नज़र डालें, जो प्ले चलाते हैं, हो सकता है कि नाटकप्लेप्रोज के साथ क्लासपाथ का विस्तार करने के लिए पर्याप्त है, नाटक

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