मैं मावेन के लिए नया हूं, मेरे जावा में एक वेब आधारित परियोजना है, जो मेरे मायक्लिप्स में मावेन कॉन्फ़िगर है।
अब अगर मैंने कोई जावा फाइल को संशोधित किया है तो क्या मुझे करने की आवश्यकता है Run as -> Mvn install
या Mvn package
?
मैं मावेन के लिए नया हूं, मेरे जावा में एक वेब आधारित परियोजना है, जो मेरे मायक्लिप्स में मावेन कॉन्फ़िगर है।
अब अगर मैंने कोई जावा फाइल को संशोधित किया है तो क्या मुझे करने की आवश्यकता है Run as -> Mvn install
या Mvn package
?
जवाबों:
से http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
package
: संकलित कोड लें और इसे अपने वितरण योग्य प्रारूप में पैकेज करें, जैसे कि JAR।
install
: स्थानीय रिपोजिटरी में पैकेज स्थापित करें, स्थानीय रूप से अन्य परियोजनाओं में निर्भरता के रूप में उपयोग करने के लिए
तो आपके प्रश्न का उत्तर है, यह इस बात पर निर्भर करता है कि क्या आप इसे अपने स्थानीय रेपो में स्थापित करना चाहते हैं। इंस्टॉल पैकेज भी चलेगा क्योंकि यह लक्ष्य चरण स्टैक में अधिक है।
deploy
है। यदि आप इसे बदल देते हैं package
, तो इसे Nexus पर लागू नहीं किया जाएगा।
mvn install
वह विकल्प है जो सबसे अधिक बार उपयोग किया जाता है।
mvn package
शायद ही कभी इस्तेमाल किया जाता है, केवल तब जब आप मावेन बिल्ड प्रक्रिया के साथ कुछ समस्या को डीबग कर रहे हों।
देखें: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
ध्यान दें कि mvn package
केवल एक जार फ़ाइल बनाएंगे।
mvn install
कि क्या करेंगे और उचित स्थानों में जार (और वर्ग आदि) स्थापित फ़ाइलों यदि अन्य कोड उन जार पर निर्भर करता है।
मैं आमतौर पर ए mvn clean install
; यह target
निर्देशिका को हटाता है और उस स्थान के सभी जार को फिर से बनाता है।
स्वच्छ अनावश्यक या हटाए गए सामान के साथ मदद करता है जो कभी-कभी रास्ते में मिल सकते हैं।
बल्कि तब डिबग (कुछ समय) बस हर समय नए सिरे से शुरू करें।
से जीवनचक्र संदर्भ , स्थापित परियोजना के एकीकरण परीक्षण चलाता है, पैकेज नहीं होगा।
यदि आपको वास्तव में उत्पन्न कलाकृतियों को स्थापित करने की आवश्यकता नहीं है, तो कम से कम सत्यापित करें ।
आपको यह भी ध्यान देना चाहिए कि यदि आपकी परियोजना में कई मॉड्यूल शामिल हैं, जो एक-दूसरे पर निर्भर हैं, तो आपको "पैकेज" के बजाय "इंस्टॉल" का उपयोग करना चाहिए, अन्यथा आपका निर्माण विफल हो जाएगा, जब आप इंस्टॉल कमांड का उपयोग करते हैं, तो मॉड्यूल ए पैक किया जाएगा। और स्थानीय रिपॉजिटरी में तैनात किया जाता है और तब यदि मॉड्यूल बी को एक निर्भरता के रूप में मॉड्यूल ए की आवश्यकता होती है, तो वह इसे स्थानीय रिपॉजिटरी से एक्सेस कर सकता है।
यदि आप दूरस्थ रिपॉजिटरी (जैसे आर्टिफैक्टल) का उपयोग नहीं कर रहे हैं , तो सादे पुराने का उपयोग करें:
mvn clean install
बहुत पुराना विषय लेकिन AFAIK, यदि आप अपनी टीम (एस) के साथ जार साझा करने के लिए अपना भंडार (जैसे: आर्टिफैक्टिक के साथ) चलाते हैं, तो आप उपयोग करना चाहते हैं
mvn clean deploy
बजाय।
इस तरह, आपका निरंतर एकीकरण सर्वर यह सुनिश्चित कर सकता है कि सभी निर्भरताएँ आपके दूरस्थ रिपॉजिटरी में सही ढंग से धकेल दी गई हैं। यदि आप एक चूक गए हैं, तो mvan इसे आपके CI स्थानीय एम 2 रिपॉजिटरी में नहीं खोज पाएगा।
पैकेज - संकलित कोड लेता है और इसे अपने वितरण योग्य प्रारूप में पैकेज करता है, जैसे कि JAR या WAR फ़ाइल। स्थापित - स्थानीय रिपॉजिटरी में पैकेज स्थापित करें, स्थानीय रूप से अन्य परियोजनाओं में निर्भरता के रूप में उपयोग करने के लिए
उचित तरीका हैmvn package
अगर आप अपने निर्माण के मुख्य भाग के लिए सही ढंग से बातें किया था तो स्थानीय भंडार में अपने पैकेज इंस्टॉल करने की कोई जरूरत नहीं होनी चाहिए।
इसके अलावा यदि आप ट्रैविस का उपयोग करते हैं तो आप अपनी निर्भरता को "कैश" कर सकते हैं क्योंकि यह आपके स्पर्श नहीं करेगा $HOME.m2/repository
यदि आप अपने स्वयं के प्रोजेक्ट के लिए पैकेज का उपयोग तो ।
व्यावहारिकता में अगर आप भी ऐसा करने का प्रयास करते हैं, तो mvn site
आपको आमतौर पर mvn install
पहले एक करने की आवश्यकता होती है । इसमें site
या तो बहुत से कीड़े हैं या यह कई खराब बनाए गए प्लगइन्स हैं।
यह इस बात पर निर्भर करता है कि जावा फ़ाइल को बदलने के बाद आप क्या हासिल करना चाहते हैं। जब तक आप मावेन प्रक्रिया का परीक्षण नहीं करना चाहते हैं, तब तक आपको कुछ भी करने की आवश्यकता नहीं है। ग्रहण / MyEclipse निर्माण करेगा जो आवश्यक है और आउटपुट को आपकी परियोजना के भीतर उचित स्थान पर रखता है। आप स्पष्ट रूप से मावेन के साथ कुछ भी करने की आवश्यकता के बिना भी इसे चला सकते हैं या इसे तैनात कर सकते हैं (यदि यह एक वेब परियोजना है, उदाहरण के लिए)। अंत में, मावेन भंडार में अपनी परियोजना को स्थापित करने के लिए, आपको मावेन इंस्टॉल करने की आवश्यकता होगी। आपके पास अन्य मावेन लक्ष्य भी हो सकते हैं जिन्हें आप निष्पादित करना चाहते हैं, जो MyEclipse स्वचालित रूप से नहीं करेगा।
जैसा कि मैं कहता हूं, यह निर्भर करता है कि आप क्या करना चाहते हैं।