2012-05-04 12 views
6

हमारे पास टेपेस्ट्री 4.1 के साथ लिखे गए एक बड़े, अनावश्यक लेकिन काफी स्थिर वेब एप्लिकेशन हैं, जिन्हें हम धीरे-धीरे आगे बढ़ना चाहते हैं। इसके लिए हम Grails में कुछ नई कार्यक्षमता विकसित करने के लिए देख रहे हैं। हमारे ग्राहकों को कभी अंतर नहीं पता होना चाहिए, और यदि संभव हो, आंतरिक रूप से कोई भी नहीं, उदा। स्थापना सेवाओं में, या तो देखभाल करना चाहिए - आदर्श रूप से, Grails ऐप मौजूदा टेपेस्ट्री कोड के समान वॉर में होगा, बस GrailsDispatcherServlet के साथ एक और विशिष्ट पथ के लिए कॉन्फ़िगर किया गया है। यह भी महत्वपूर्ण है कि मौजूदा अनुप्रयोग के लिए राक्षस निर्माण प्रक्रिया में न्यूनतम परिवर्तन है - गेंट और आइवी में बिल्ड सिस्टम (वर्तमान में चींटी, मेवेन में संक्रमण) को फिर से शुरू करना एक विकल्प नहीं है। और यह अच्छा होगा अगर हम विकास के दौरान लाइव रीलोडिंग के लिए विस्फोटित वार्स के साथ काम कर सकें।मौजूदा वेब अनुप्रयोग के साथ Grails को एकीकृत करना

सवाल है, तो:

  • यह संभव है?
  • यदि हां, तो मैं कहां से शुरू करूं?
  • यदि नहीं, तो अगला सबसे अच्छा तरीका क्या है?
  • मुझे देखने के लिए क्या देखना चाहिए?

इस तरह से ध्यान दें कि हम GORM का उपयोग नहीं करेंगे; हमारा सभी डेटा वेब सेवाओं से आता है, जिसमें हमारे पास पहले से ही जावा डोमेन और मैसेजिंग परतें हैं।

+0

क्या आप लगातार डेटा के लिए हाइबरनेट का उपयोग करते हैं या आप किसी और चीज का उपयोग करते हैं? – allthenutsandbolts

+0

बस कुछ विचार - कैसे grails ऐप को अलग से बनाने के बारे में, और उसके बाद मूल ऐप के युद्ध के साथ grails ऐप के युद्ध को एक .ear फ़ाइल के रूप में बंडल करना? इस तरह, आप अपना मूल निर्माण कर सकते हैं, जिस तरह से काम कर रहे थे, उसमें काम कर रहे ग्रिल रखें, और अंत में अतिरिक्त फ़ाइल को .ear फ़ाइल बनाने के लिए जोड़ें। बड़े प्रश्न यह होंगे कि एकीकरण का स्तर दोनों के बीच क्या है, एकीकरण बिंदु क्या है, और उचित यूआरएल पुनः लिखने के लिए इसे निर्बाध दिखने के लिए कैसे हटाया जाए। – GreyBeardedGeek

+0

इस तथ्य के बाहर कि आप ग्रोवी के बजाए जावा का उपयोग करेंगे, ऐसा लगता है कि आपको स्प्रिंग एमवीसी (Grails का एक प्रमुख घटक) द्वारा बेहतर सेवा दी जा सकती है। –

उत्तर

1

आप स्थापित-टेम्पलेट्स कमान

आप Ant & Maven (या Gradle) का उपयोग कर सकते एक Grails अनुप्रयोग का निर्माण करने की लेकिन जब से नहीं है grails चलाकर सर्वलेट मैपिंग को बदलने के लिए web.xml के लिए टेम्पलेट को संपादित कर सकते हैं " मानक "विधि मेरा अनुभव यह रहा है कि कुछ मामूली tweaking आवश्यक हो सकता है। मैंने एंटी एकीकरण (जो निर्भरताओं के लिए आईवी का उपयोग करता है) का उपयोग किया है ताकि चींटी को लपेटने और विशेष आवश्यकताओं के निर्माण को संशोधित करने के लिए ग्रैडल का उपयोग किया जा सके।

समस्या जो आप चला सकते हैं वह यह है कि गैंट स्क्रिप्ट ग्रिल के लिए मूल हैं और उन स्क्रिप्ट्स (आपके द्वारा उपयोग किए जाने वाले प्लगइन के आधार पर) में कई चीजें होती हैं जो स्क्रिप्ट्स के साथ दोनों बिल्डों को एक साथ मर्ज करने की कोशिश करने के साथ समस्याएं उत्पन्न कर सकती हैं आपके उपयोग के मामले में दिमाग में लिखा है।

2

अच्छी खबर: हाँ, यह संभव है।

खराब समाचार: यह थोड़ा बालों वाला है।

  1. डायलन ने सुझाव दिया है, को संशोधित Grails कुछ सुधार करने से, अपने मौजूदा आवेदन को समायोजित करने का निर्माण:

    कम से कम 2 तरीका नहीं है।

  2. एक और चींटी लक्ष्य बनाएं जो मौजूदा WAR फ़ाइल को Grails द्वारा उत्पादित WAR फ़ाइल के साथ जोड़ती है।

पहला विकल्प, Grails बिल्ड को संशोधित करने वाला पहला विकल्प। जोखिम तब होता है जब Grails संस्करण अद्यतन करते हैं, अनुकूलित और tweaked Grails निर्माण बिल्कुल असफल हो सकता है, और आप न तो यहां और न ही खत्म हो जाएगा। इसे ठीक करने के लिए ढांचे के निर्माण के बारे में गहरा ज्ञान की आवश्यकता होगी। चूंकि यह एक नया ढांचा वाला आपका प्रारंभिक मुठभेड़ है, शायद सीखने की अवस्था बहुत खड़ी होगी।

मैं दूसरा पसंद करूंगा, क्योंकि आपको Grails build के साथ गड़बड़ करने की आवश्यकता नहीं है। आपको अंतर्निहित जानना होगा, web.xml कॉन्फ़िगरेशन कैसे काम करता है। मुझे लगता है कि आपके पास पहले से ही यह ज्ञान है क्योंकि आपके पास पहले से ही अपना खुद का निर्माण है। शायद यह कम से कम प्रतिरोध का मार्ग है।

दूसरे दृष्टिकोण के नकारात्मक पक्ष में विकास के दौरान विस्फोटित युद्ध होना मुश्किल होगा। लेकिन यदि आप विकास के दौरान एक साथ परीक्षण करने की आवश्यकता के बिना पुराने आवेदन और नए आवेदन को अलग कर सकते हैं, तो आपके हल्के विकास सर्वर का उपयोग करके Grails में विकास करते समय आपके पास अच्छा समय होगा।

अगला कदम थोड़ा सा होगा, पुराने अनुप्रयोग को Grails के तहत चलाने में सक्षम बनाता है क्योंकि Grails द्वारा जावा घटक का आह्वान किया जा रहा है।

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