2012-08-08 16 views
26

मेवा के साथ बहुत सारे जावा एप्लिकेशन बनाए जाते हैं। मेवेन प्रोफाइल प्रोफाइल अवधारणा है, यह विभिन्न वातावरण के लिए रिलीज पैकेज बनाने के लिए वास्तव में आसान है। जैसे dev/test/prod विभिन्न path/jndiname/security rule/properties files का उपयोग कर ... मुझे लगता है कि मुझे इसे समझाने के लिए यहां कोड सूचीबद्ध करने की आवश्यकता नहीं है।मेवेन प्रोफाइल या वसंत प्रोफाइल?

वसंत जावा विकास के लिए एक बहुत अच्छा और लोकप्रिय ढांचा है, वसंत 3 के बाद से यह प्रोफाइल अवधारणा का भी समर्थन करता है।

अब प्रश्न पूछता है, विभिन्न एनएनवी उद्देश्यों को जारी करने के लिए, कौन सा बेहतर है? अभी मैं मैवेन प्रोफाइल पसंद करता हूं। चूंकि वसंत को प्रत्येक प्रोफ़ाइल में प्रत्येक बीन परिभाषा की प्रतिलिपि बनाना पड़ता है। और वसंत को यह जानने के लिए कि किस प्रोफाइल को सक्रिय किया जाना चाहिए, उसे प्रारंभकर्ता/संपत्ति की आवश्यकता है।

लेकिन मुझे लगता है कि वसंत प्रोफ़ाइल मैवेन प्रोफाइल से अधिक लचीला है।

आपको क्या लगता है? कृपया कुछ सलाह दें। धन्यवाद।

उत्तर

30

मेवेन प्रोफाइल बिल्ड-टाइम समाधान प्रदान करेंगे, जबकि स्प्रिंगफ्रेमवर्क प्रोफाइल रनटाइम विकल्प प्रदान करेंगे। मुझे लगता है कि यह पहला प्रश्न है जो कोई खुद से पूछ सकता है: यदि वह एक ऐसा पैकेज चाहता है जिसे विभिन्न वातावरण में तैनात किया जा सके, या यदि वह गंतव्य उपकरण के अनुसार विभिन्न पैकेज प्रदान करने के लिए निर्माण उपकरण चाहता है।

ध्यान में रखना एक बात यह है कि यदि आपके पास अलग-अलग सर्वरों में तैनात विभिन्न पैकेज हैं तो कई प्रश्न उठ सकते हैं। मेरे कार्यस्थल में, उदाहरण के लिए, यदि मैं उत्पादन वातावरण में पहले हुई बग को सही करने के लिए एक पैकेज तैनात कर रहा हूं, तो एक कंपनी नीति बताती है कि एकमात्र स्वीकार्य परिदृश्य यह है कि मेरे पास क्यूए और उत्पादन सर्वरों में एक ही समाधान पैकेज है।

5

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

0

मुझे लगता है कि यह आपकी आवश्यकताओं पर निर्भर करता है। यदि आपके पास पर्यावरण के आधार पर विभिन्न निर्भरताएं हैं (यानी jdbc ड्राइवर, आदि ..), तो आप इसे हल करने के लिए मेवेन का उपयोग करना चाहेंगे।

यदि यह केवल आपकी तैनाती को कॉन्फ़िगर करने की बात है, तो संभवतः आप बसंत का उपयोग बंद कर सकते हैं।

6

अन्य उत्तर में उल्लेख किया है: यह सब पर निर्भर करता है आप कैसे काम करते हैं :)

क्या हम पिछले वर्षों में Maven और अब वसंत 3.1 प्रोफाइल का उपयोग कर के साथ आया था यह है:

  • हम रिलीज काटने के लिए मेवेन-रिलीज-प्लगइन का उपयोग करते हैं। यह पर्यावरण के साथ मुद्दों का कारण बनता है अगर हम मेवेन प्रोफाइल का उपयोग करेंगे क्योंकि हमें रिलीज को पुनर्निर्माण करना होगा या कम से कम प्रत्येक मेवेन प्रोफाइल
  • के साथ टैग की आवश्यकता होगी ताकि हम सभी वातावरण के लिए .war फ़ाइल बना सकें और एप्लिकेशन सेट अप करने के लिए वसंत PropertyPlaceholderConfigurer का उपयोग करें। (या ग्राहक के आधार पर कुछ जेएनडीआई संसाधन)। यह केवल एक मैवेन रिलीज चलाने की अनुमति देता है।
  • वसंत प्रोफाइल तब आते हैं जब वातावरण अलग-अलग होते हैं। उदाहरण के लिए एक प्रमाणीकरण सेवा जो सभी वातावरण पर उपलब्ध नहीं है। यहां हम उस सेवा को रोकते हैं और इसे वसंत प्रोफ़ाइल में डाल देते हैं। हम उन गुणों में वसंत प्रोफाइल सक्रिय करते हैं जिन्हें PropertyPlaceholderConfigurer द्वारा पढ़ा जाता है, हम वैसे भी उपयोग करते हैं।

वहाँ कुछ अच्छा ट्यूटोरियल है कि कैसे करना है पर चारों ओर हैं:

हम आम तौर पर केवल के लिए अलग-अलग हिस्सों में विभाजित करने के लिए निर्माण Maven प्रोफ़ाइल का उपयोग डेवलपर्स और निरंतर एकीकरण निर्माण। हम वास्तव में .war फ़ाइलों के लिए लक्षित वातावरण के लिए उनका उपयोग नहीं करते हैं। हम अभी भी स्वचालित डेटाबेस तैनाती के लिए मेवेन प्रोफाइल का उपयोग करते हैं, जो वेब-ऐप्स (डेटा की मात्रा, परीक्षण डेटा, ...) की तुलना में अधिक भिन्न है, लेकिन इन्हें ज़िप या तो के रूप में वितरित नहीं किया जाता है।

निश्चित रूप से जाने के अन्य तरीके हैं। मैं इसे कहानी का अंत नहीं मानता :)

लेकिन इससे मदद मिल सकती है।

2

मै मैनेज प्रोफाइल सक्रिय करने के आधार पर सिस्टम प्रॉपर्टी सेट करने के लिए प्रॉपर्टी-मेवेन-प्लगइन का उपयोग करने के लिए हुआ। फिर वसंत में, मैं उस प्रणाली की संपत्ति के आधार पर प्रोग्रामेटिक रूप से प्रोफाइल (प्रोफाइल) को सक्रिय कर रहा था:

स्ट्रिंग सक्रिय प्रोफाइल = System.getProperty ("myapp.profile");

appContext.getEnvironment()। SetActiveProfiles (....)

इसके अलावा, जब मैं सीधे प्रोफ़ाइल (Maven/वसंत) के दो प्रकार से जोड़ने के लिए चाहता था, मैं spring.profiles.active संपत्ति की स्थापना की गई थी मेवेन प्लगइन के माध्यम से।

डिजाइन में संभवतः गलत प्रथाएं गलत हैं लेकिन उन्होंने मेरे मुद्दों को हल किया।

+1

बिल्कुल वही जो मैं खोज रहा था, thanx! – Vinicius

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