2011-09-12 18 views
6

मेरे पास मेवेन में एक बहु-मॉड्यूल प्रोजेक्ट है, जहां अन्य परियोजनाओं को पर्यावरण के अनुसार जार का उपयोग करने की आवश्यकता है।मैवेन अगर व्यवहार की तरह

हम 4 enviroenments 1.Dev 2.UAT 3.QA 4.PROD

एक परियोजना जो सभी तीन वातावरण के लिए ProjectName-dev.jar का उपयोग करना चाहता है की तरह है (यानी देव, यूट, क्यूए) और प्रोजेक्टनाम-प्रोड.जर प्रोड के लिए।

मैंने एक Google खोज की है जैसे किसी अन्य तर्क के लिए जिसे मैं मैवेन प्रोफाइल में उपयोग कर सकता हूं।

मैं अभी भी इस विशिष्ट प्रोजेक्ट के लिए एक नई संपत्ति बना सकता हूं और इसे प्रोडक्शन में जाने पर '-प्रोड' में बदल सकता हूं, लेकिन यह अतिरिक्त ओवरहेड है जिसे मैं जोड़ना नहीं चाहता हूं।

क्या कोई प्लगइन है जिसके लिए मैं इसका उपयोग कर सकता हूं जो मुझे ऊपर दिए गए काम को किसी भी प्रकार के मैन्युअल ओवरहेड को जोड़ने के बिना करने में मदद करेगा।

धन्यवाद

+3

मैं केवल विकास में मेवेन चलाऊंगा। मैं एक रिलीज करने के लिए मेवेन का उपयोग करता हूं और इसकी रिलीज मैं यूएटी, क्यूए और प्रोड में ** अपरिवर्तित ** का उपयोग करूंगा। यदि वातावरण के बीच कॉन्फ़िगरेशन अंतर हैं तो मैं इन्हें अलग से बनाए रखूंगा। –

+0

यहां समस्या यह होगी कि एक ऐसा संगठन जहां विकास, यूट और क्यू को क्रमशः समर्पित तीन टीम हैं, वे एक व्यक्ति पर अपने निर्माण के लिए निर्भर होंगे। :) – Neeraj

+1

मेरे पास एक सतत एकीकरण सर्वर होगा उदा। हडसन और यह है कि कोई भी रिलीज (निर्देशों के साथ) कर सकता है आपके पास समस्या यह है कि यूएटी और क्यूए लगभग कुछ बना सकते हैं लेकिन वास्तव में DEV के समान नहीं। और फिर कुछ अलग उत्पादन में जाओ। –

उत्तर

7

है ना क्या Maven profiles क्या करने का इरादा कर रहे हैं? आप अलग-अलग प्रोफाइल में अलग-अलग संपत्ति मूल्यों को परिभाषित कर सकते हैं और फिर निर्माण करते समय उनमें से एक को सक्रिय कर सकते हैं।

+0

एक नई प्रोफ़ाइल बनाने के बजाय आईडी, मैं एक नई संपत्ति, बनाने के साथ जाऊंगा और जब मैं इसे बना रहा हूं तो मैं इसे मैवेन में पास कर दूंगा- डीएनवी = 'मायनेव'। इस प्रकार आदर्श वातावरण और एनवायरमेंट विशिष्ट निर्माण किए जाते हैं Maven। – Neeraj

+0

मैं आपसे सहमत हूं @ नीरज। प्रोफाइल का उपयोग करने की सिफारिश में एक्स्टाव काफी सही है। प्रोफ़ाइल में आप कई प्रकार के गुण निर्दिष्ट कर सकते हैं जैसे कि आप उस प्रकार के निर्माण के लिए विशिष्ट पसंद करते हैं। कमांड लाइन –

0

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

+0

पर प्रत्येक प्रॉपर्टी को परिभाषित करने में बहुत अधिक लचीला हां मैं पूरी तरह से आपसे सहमत हूं। 4 अलग-अलग प्रोफाइल बनाने के बजाय, कलाकृतियों में प्रत्येक पर्यावरण के लिए कॉन्फ़िगरेशन होना चाहिए और यह वही है जो मैं यहां देख रहा हूं। – Neeraj

+0

तो शायद हम समझ नहीं पाएंगे कि आप क्या पूछ रहे हैं क्योंकि ऐसा लगता है कि आप सशर्त रूप से विभिन्न परिवेशों पर लक्षित एक मेवेन निर्माण को चलाने के लिए एक रास्ता तलाश रहे हैं। अधिक संभावना है, आपको कुछ ऐसा करना चाहिए जैसे मैवेन आपके आर्टिफैक्ट का निर्माण करें और [असेंबली प्लगइन] (http://maven.apache.org/plugins/maven-assembly-plugin/) का उपयोग करें, कई अलग-अलग पर्यावरण कॉन्फ़िगरेशन के साथ आर्टिफैक्ट को बंडल करें एक ज़िप फ़ाइल में। –

+0

डीबी कॉन्फ़िगरेशन को युद्ध फ़ाइल में स्टोर करना बहुत आम है। प्रत्येक निर्माण वातावरण के लिए अलग-अलग कलाकृतियों के बिना आप देव, प्रोड के लिए इसे कैसे कॉन्फ़िगर करेंगे? –

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