दिलचस्प पोस्ट
टेक्सटेरा में चयनित पाठ कैसे प्राप्त करें? PHP में वेब स्क्रैपर को कैसे कार्यान्वित करें? चयन तत्व का डिफ़ॉल्ट मान सेट करने के लिए एनजी-विकल्प का उपयोग कैसे करें पूर्व-एसएसई 2 प्रोसेसर को लक्षित करने वाले जावा रनटाइम्स को फ्लोटिंग-पॉइंट बेसिक ऑपरेशंस को कैसे लागू किया जाता है? आवरण वर्ग और आदिम प्रकार का उपयोग कब करना रनटाइम पर माइवेन एलेफ़ाफ्ट संस्करण प्राप्त करें क्या मैं दो चर के साथ एक केस / स्विच स्टेटमेंट का उपयोग कर सकता हूं? कैसे WPL में modal संवाद करते हैं? ओपनसीवी टेम्पलेट मिलान और पारदर्शिता usr / bin / ld: नहीं मिल सकता है -l <nameOfTheLibrary> जावा: सीपीयू कोर के अनुसार थ्रेड्स कैसे स्केल करें? नई Google फ़ोटो ऐप का उपयोग करके फ़ोटो का चयन टूटा हुआ है "Java -cp" और "java -jar" के बीच अंतर? एचटीएमएल / सीएसएस में चेकबॉक्स आकार पैकेजिंग ईजेबी जावाए 6 युद्ध बनाम ईएआर में

मैवेन स्नैपशॉट क्या है और हमें इसकी आवश्यकता क्यों है?

मैं एक मैवेन स्नैपशॉट के अर्थ के बारे में थोड़ा उलझन में हूं और हम एक क्यों बनाते हैं?

Solutions Collecting From Web of "मैवेन स्नैपशॉट क्या है और हमें इसकी आवश्यकता क्यों है?"

मेवेन में स्नैपशॉट संस्करण रिलीज़ नहीं किया गया है।

यह विचार यह है कि 1.0 रिहाई (या कोई अन्य रिहाई) से पहले, एक 1.0-SNAPSHOT मौजूद है यह संस्करण 1.0 हो सकता है । यह मूल रूप से "विकास के अंतर्गत 1.0 " है यह वास्तविक 1.0 रिहाई, या बहुत दूर ( 0.9 रिलीज़ के बाद, उदाहरण के लिए) के करीब हो सकता है।

एक "वास्तविक" संस्करण और एक स्नैपशॉट संस्करण के बीच का अंतर यह है कि स्नैपशॉट अपडेट प्राप्त कर सकते हैं। इसका मतलब है कि 1.0-SNAPSHOT डाउनलोड करने से कल कल या कल डाउनलोड करने से कोई दूसरी फाइल दे सकती है।

सामान्यतया, स्नैपशॉट निर्भरताएं केवल विकास के दौरान ही मौजूद होंगी और कोई रिलीज़ संस्करण (अर्थात कोई गैर स्नैपशॉट) स्नैपशॉट संस्करण पर निर्भरता नहीं होनी चाहिए।

तीन अन्य लोगों के जवाब में आपको -SNAPSHOT संस्करण क्या है, -SNAPSHOT अच्छा -SNAPSHOT । जब मैं एक SNAPSHOT निर्भरता पाता है तो SNAPSHOT के व्यवहार के बारे में मैं कुछ जानकारी जोड़ना चाहता था।

जब आप कोई एप्लिकेशन बनाते हैं, तो मेवेन स्थानीय रिपॉजिटरी में निर्भरता की खोज करेगा। अगर कोई स्थिर संस्करण वहां नहीं मिला है, तो यह निर्भरता पुनर्प्राप्त करने के लिए दूरस्थ संग्रह ( settings.xml pom.xml या pom.xml में परिभाषित) खोज करेगा। इसके बाद, यह इसे स्थानीय भंडार में कॉपी कर देगा, ताकि इसे अगले बिल्ड के लिए उपलब्ध कराया जा सके।

उदाहरण के लिए, एक foo-1.0.jar लाइब्रेरी को एक स्थिर संस्करण के रूप में माना जाता है, और अगर foo-1.0.jar इसे स्थानीय भंडार में पाता है, तो यह मौजूदा बिल्ड के लिए इसका उपयोग करेगा।

अब, अगर आपको एक foo-1.0-SNAPSHOT.jar लाइब्रेरी की आवश्यकता है, तो foo-1.0-SNAPSHOT.jar जान जाएगी कि यह संस्करण स्थिर नहीं है और परिवर्तनों के अधीन है। यही कारण है कि मैवेन दूरस्थ रिपॉजिटरी में एक नया संस्करण ढूंढने की कोशिश करेगा, भले ही इस पुस्तकालय का एक संस्करण स्थानीय भंडार पर पाया गया हो। हालांकि, यह चेक प्रति दिन केवल एक बार किया जाता है। इसका मतलब यह है कि अगर आपके पास एक foo-1.0-20110506.110000-1.jar (अर्थात यह पुस्तकालय foo-1.0-20110506.110000-1.jar से उत्पन्न हुआ है), और यदि आप foo-1.0-20110506.110000-1.jar फिर से निर्माण करते हैं उसी दिन, मेवेन एक नए संस्करण के लिए रिपॉजिटरी की जांच नहीं करेगा।

मेवेन आपको अपनी रिपॉजिटरी परिभाषा में इस अद्यतन नीति को बदल सकते हैं:

 <repository> <id>foo-repository</id> <url>...</url> <snapshots> <enabled>true</enabled> <updatePolicy>XXX</updatePolicy> </snapshots> </repository> 

जहां XXX हो सकता है:

  • हमेशा : मैवेन हर बिल्ड पर एक नए संस्करण की जांच करेगा;
  • दैनिक , डिफ़ॉल्ट मान;
  • अंतराल: XXX : मिनटों में एक अंतराल (XXX)
  • कभी नहीं : मेवेन दूसरे संस्करण को पुनः प्राप्त करने की कोशिश नहीं करेगा। यह है कि अगर केवल स्थानीय स्तर पर उपलब्ध नहीं है। कॉन्फ़िगरेशन के साथ, SNAPSHOT संस्करण को स्थिर पुस्तकालयों के रूप में नियंत्रित किया जाएगा।

(settings.xml का मॉडल यहां पाया जा सकता है)

"SNAPSHOT" शब्द का मतलब है कि बिल्ड आपके कोड का स्नैपशॉट एक निश्चित समय पर होता है।

यह आमतौर पर इसका अर्थ है कि संस्करण अभी भी भारी विकास के तहत एक संस्करण है।

जब आपका कोड जारी करने के लिए समय आता है, तो आप पॉम में सूचीबद्ध संस्करण को बदलना चाहते हैं। इसलिए "SNAPSHOT" होने के बजाय आपके पास "1.0" जैसी कोई चीज़ होगी

संस्करण के साथ कुछ मदद के लिए, सिमेंटिक वर्जनिंग विनिर्देश देखें ।

एक "जारी" संस्करण के लिए अंतिम निर्माण होता है जो कि परिवर्तन नहीं करता है

एक "स्नैपशॉट" एक बिल्ड है जिसे एक और बिल्ड द्वारा प्रतिस्थापित किया जा सकता है जिसका नाम समान है इसका अर्थ है कि बिल्ड किसी भी समय बदल सकता है और अभी भी सक्रिय विकास के अंतर्गत है।

आपके पास एक ही कोड के आधार पर विभिन्न निर्माण के लिए अलग-अलग कलाकृतियों हैं। उदाहरण के लिए आपके पास डिबगिंग और एक के बिना एक हो सकता है। एक जावा 5.0 के लिए और एक जावा 6 के लिए। आम तौर पर इसकी सरलता एक निर्माण होता है जो आपकी ज़रूरतों को पूरा करता है। 😉

इस तरह से एक स्नैपशॉट एक रिपॉजिटरी के लिए दिखता है और इस स्थिति में सक्षम नहीं है, जिसका अर्थ है कि यहाँ संदर्भित भंडार स्थिर है और अद्यतनों की कोई आवश्यकता नहीं है

 <project> ... <repositories> <repository> <id>lds-main</id> <name>LDS Main Repo</name> <url>http://code.lds.org/nexus/content/groups/main-repo</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project> 

एक और मामला होगा:

 <snapshots> <enabled>true</enabled> </snapshots> 

जिसका अर्थ है कि मेवेन इस रिपॉजिटरी के लिए अपडेट की तलाश करेगा। आप टैग के अपडेट के लिए एक अंतराल भी निर्दिष्ट कर सकते हैं।

आम तौर पर मवेरे में हमारे पास दो प्रकार के निर्माण होते हैं 1) स्नैपशॉट बनता है 2) रिलीज़ बिल्ड बनाता है

1) स्नैपशॉट बिल्ड: एसएनएपीएसएचओटी विशेष संस्करण है जो वर्तमान परिनियोजन प्रतिलिपि को नियमित संस्करण की तरह नहीं दर्शाता है, मेवेन रिमोट रेपॉजिटरी में हर बिल्ड के लिए संस्करण की जांच करता है ताकि स्नैपशॉट निर्मित कुछ भी नहीं हो लेकिन रखरखाव के निर्माण

2) रिलीज़ निर्माण: रिलीज़ का मतलब है निर्माण के लिए संस्करण पर SNAPSHOT को निकालना, ये नियमित बिल्ड संस्करण हैं।

मेवेन संस्करणों में एक स्ट्रिंग शब्दशः "SNAPSHOT" शामिल हो सकता है जो यह दर्शाती है कि एक परियोजना वर्तमान में सक्रिय विकास के अंतर्गत है।

उदाहरण के लिए, यदि आपके प्रोजेक्ट में "1.0-SNAPSHOT" का संस्करण है और आप इस प्रोजेक्ट की कलाकृतियों को एक मेवेन रिपॉजिटरी में तैनात करते हैं, तो मेवेन इस संस्करण को "1.0-20080207-230803-1" का विस्तार करेगा यदि आप 11 : 7 फ़रवरी, 2008 यूटीसी 2008 में 08 बजे। दूसरे शब्दों में, जब आप एक स्नैपशॉट परिनियोजित करते हैं, तो आप एक सॉफ़्टवेयर घटक की रिहाई नहीं कर रहे हैं; आप एक विशिष्ट समय पर एक घटक का स्नैपशॉट जारी कर रहे हैं।

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

उदाहरण के लिए, निम्नलिखित निर्भरता हमेशा वसंत के नवीनतम 1.8 विकास जार डाउनलोड करेगी:

  <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>1.8-SNAPSHOT”</version> </dependency> 

Maven

Maven रिलीज़ प्रक्रिया का एक उदाहरण

यहां छवि विवरण दर्ज करें