2009-06-20 13 views
12

मेरे पास एक ऐसी स्थिति है जहां मेरा कुछ ग्रोवी कोड मेरी जावा फाइलों का संदर्भ देता है, लेकिन मेरे पास अलग जावा फाइलें भी हैं जो समान ग्रोवी कोड का संदर्भ देती हैं। मेवेन में संकलन करने की कोशिश करते समय, मुझे जावा के पहले या बाद में ग्रोवी को संकलित करने की आवश्यकता होती है, और यह वास्तव में काम नहीं करेगा क्योंकि ग्रोवी कोड कुछ जावा फाइलों पर निर्भर करता है, और विभिन्न जावा फाइलें ग्रोवी कोड पर निर्भर करती हैं। क्या इस तरह की निर्भरता को संभालने का कोई तरीका है?मेवेन संकलन groovy

उत्तर

8

आप अपने maven pom.xml पर gmaven प्लगइन जोड़ कर अपने कोड को संकलित करने में सक्षम होना चाहिए। यह आपके ग्रोवी कोड के जावा स्टब्स जेनरेट करता है ताकि आप जिस इंटर-भाषा संदर्भ के साथ काम कर रहे हैं, उससे निपटने के लिए। मैं इसे थोड़ा सा उपयोग करता हूं और यह बहुत अच्छी तरह से काम करता है।

0

आप परतों में अपना कोड विभाजित कर सकते हैं और निचली परतों को ऊपरी परतों पर कॉल कर सकते हैं लेकिन इसके विपरीत कभी नहीं। उदाहरण के लिए, एक वेब ऐप में आप एक दृश्य परत, एक सेवा परत, और एक स्थिरता परत हो सकता है। व्यू परत सेवा परत को कॉल करती है और सेवा परत दृढ़ता परत को कॉल करती है, लेकिन दृढ़ता परत कभी भी सेवा परत या दृश्य परत को कॉल नहीं करेगी। यदि आप एक ही परत में ग्रोवी/जावा कोड मौजूद होना चाहते हैं तो सुनिश्चित करें कि कोई दूसरे को कॉल करता है लेकिन वे दोनों एक-दूसरे को कॉल नहीं करते हैं। निचली पंक्ति यह है कि आपको द्वि-दिशात्मक निर्भरताओं से बचना चाहिए।

+0

-1 संयुक्त ग्रोवी-जावा कंपाइलर है। –

+0

यह सच है लेकिन द्वि-दिशात्मक निर्भरता होने से अनावश्यक रूप से जटिल और कम रखरखाव कोड हो सकता है। इस प्रश्न के संदर्भ में मैं सहमत हूं कि जीएमवन का उपयोग सही जवाब है, लेकिन मैं अभी भी कोड को खत्म करने के लिए प्रतिक्रिया दूंगा, या कम से कम द्वि-दिशात्मक संबंधों को कम कर दूंगा। – rich

11

हां, बस GMaven का उपयोग करें। चूंकि यह एक संयुक्त कंपाइलर है, यह स्वचालित रूप से जावा निर्भरताओं के लिए अपने जावा को groovy और groovy करने के लिए प्रबंधित करता है।

  • अपने pom.xml में gmaven-plugin शामिल हैं;:

    संक्षेप में, आप की आवश्यकता होगी

  • src/main/groovy या src/test/groovy के तहत अपनी ग्रोवी कक्षाएं रखें;
  • प्रासंगिक जीवन चक्र चरणों में gmaven प्लगइन बांधें।

अधिक जानकारी के लिए building groovy projects देखें।

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