2010-05-07 15 views
11

मैं विकास और उत्पादन वातावरण में मेवेन के उपयोग के बारे में उलझन में हूं - मुझे यकीन है कि यह कुछ आसान है जो मुझे याद आ रही है। किसी भी मदद के लिए आभारी ..मैवेन में उत्पादन में उत्पादन से रिहाई

मैंने अपनी स्थानीय मशीन पर ग्रहण के अंदर मेवेन स्थापित किया और कुछ सॉफ्टवेयर लिखा। मुझे सचमुच यह पसंद है कि यह कैसे निर्भर जारों सहित चीजों को आसान बनाता है।

तो यह मेरा विकास वातावरण है। लेकिन अब मैं प्रोजेक्ट को दूरस्थ सर्वर पर उत्पादन में रिलीज़ करना चाहता हूं। मैंने प्रलेखन की खोज की है, लेकिन मैं यह नहीं समझ सकता कि इसे कैसे काम करना चाहिए या मेवेन का सर्वोत्तम अभ्यास क्या है .. क्या आपको यह माना जाता है:

ए) इसके अलावा अपने उत्पादन वातावरण पर मेवेन चलाएं और अपलोड करें आपकी सभी फाइलें आपके उत्पादन माहौल में हैं और वहां आपकी परियोजना का पुनर्निर्माण करते हैं? (उत्पादन सर्वर पर 'रिलीज' कोड के पुनर्निर्माण के विचार पर मुझे कुछ बोल्ड, इसलिए मुझे यकीन है कि यह सही नहीं है ..)

बी) एमवीएन का उपयोग करें: अपनी जार फ़ाइल बनाने के लिए पैकेज और फिर उत्पादन के लिए इसे कॉपी करें? (लेकिन फिर उन सभी भरोसेमंदताओं में से क्या? क्या कोई खतरा नहीं है कि आपका परीक्षण कोड अब उत्पादन वातावरण में निर्भर जार के विभिन्न संस्करणों के खिलाफ चल रहा है, संभवतः आपके कोड को तोड़ रहा है? या एक जार गायब हो रहा है ..?)

ग) बाकी है कि मैं पता लगाना नहीं कर रहा हूँ कुछ .. किसी भी मदद के लिए अग्रिम में

धन्यवाद!

+0

सब तुम्हारी मदद के लिए धन्यवाद! पास्कल - महान जवाब! धन्यवाद! मुझे लगता है कि आपने मुझे एक बेहतर रास्ते पर सेट किया है :-) – Jeremy

+0

आपका स्वागत है, खुशी है कि आपको यह उपयोगी लगता है। –

उत्तर

15
  • आप संस्करण नियंत्रण के तहत अपने कोड है माना जाता कर रहे हैं।

  • आपको अपने कोड को एक प्रारूप (एक डब्ल्यूएआर, एक ईएआर, एक अन्य प्रकार का बंडल) पैकेज करना है जिसे निष्पादन के लिए उत्पादन वातावरण पर तैनात किया जा सकता है। इस तरह के बंडलों में आमतौर पर निर्भरता शामिल होती है। अधिक जटिल बंडलों का निर्माण करने के लिए, Maven Assembly Plugin सहायता कर सकता है।

  • Maven उत्पन्न कलाकृतियों (जार, युद्धों, जो कुछ भी) एक दूरस्थ भंडार के माध्यम से साझा (और इस प्रकार तैनात - मैं mvn deploy यहाँ मतलब - इस दूरदराज के भंडार के लिए) होना चाहिए। एक दूरस्थ भंडार एक वेब सर्वर के माध्यम से एक साधारण फ़ाइल सिस्टम या Nexus जैसे अधिक उन्नत समाधान हो सकता है।

  • विकास आमतौर पर स्नैपशॉट निर्भरताओं (जैसे 1.0-स्नैपशॉट) का उपयोग करके किया जाता है। रिलीज समय पर, आपको संस्करण को "फिक्स्ड" संस्करण (जैसे 1.0) और pom.xml से कुछ अन्य बिट्स में बदलना होगा, यह जांचने के लिए बिल्ड चलाएं कि सब ठीक है, संशोधित pom.xml संशोधित करें, इसमें एक टैग बनाएं वीसीएस, pom.xml में संस्करणों को एक नए स्नैपशॉट (जैसे 1.1-एसएनएपीएसएचओटी) को बढ़ावा देता है, वीसीएस में नया pom.xml प्रतिबद्ध करता है। पूरी प्रक्रिया को कुछ काम की आवश्यकता है लेकिन इसे Maven Release Plugin का उपयोग करके स्वचालित किया जा सकता है।

  • उत्पादन वातावरण पर, दूरस्थ भंडार से कलाकृतियों को तैनात किया जाना चाहिए और उन्हें तैनात करना चाहिए (कुछ परियोजनाएं मेवेन का उपयोग करके उत्पादन सर्वर पर तैनाती को स्वचालित करती हैं लेकिन यह एक और कहानी है)।

बेशक, इसके आसपास विविधताएं हैं (उत्पादन के लिए तैनाती ज्यादातर समय कंपनी विशिष्ट है) लेकिन सामान्य विचार वहां है।

3

आपको Maven Assembly Plugin और Maven Release Plugin पर देखने की आवश्यकता है। (, आप संस्करण नियंत्रण प्रणाली से "डाउनलोड" उन्हें आवश्यक अगर कभी नहीं आप एक और मशीन के लिए फ़ाइलों को "अपलोड करें" और)

1

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

लागू करने के रूप में, you can use maven's antrun plugin to copy files locally or via scp

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