बिल्ड सिस्टम - स्थानीय रिपोजिटरी

असेंबली सिस्टम के बारे में पिछले पोस्ट की निरंतरता - बिल्डसिस्टम - इंट्रो

Maven


एक निर्माण प्रणाली जो कार्यों को पूरा करने के लिए विभिन्न स्तरों और प्लगइन्स पर निर्भरता का वर्णन करती है।
पिछली पोस्ट में, इस प्रणाली का वर्णन करने वाले अन्य लेखों के लिंक दिए गए हैं, जिसकी पहचान स्पष्ट रूप से परिभाषित विधानसभा जीवन चक्र है:


स्थानीय मावेन रिपोजिटरी

लेकिन इनमें से कोई भी लेख वर्णित नहीं है, जो बदले में, मेरे लिए बहुत उपयोगी था - यह एक स्थानीय भंडार स्थापित कर रहा है।

डिफ़ॉल्ट रूप से, निम्न निर्देशिका स्थानीय रिपॉजिटरी (OS: Windows) के रूप में उपयोग की जाती है
%userprofile%/.m2/repository 

लेकिन समय के साथ, भंडार बढ़ रहा है और बढ़ रहा है, और यह तथ्य, जो लगातार सिस्टम विभाजन पर एक जगह खाता है, ने मुझे भंडार के विकास के प्रत्यक्ष अनुपात में निराश करना शुरू कर दिया।
इसके अलावा, अगर अचानक आप (मेरे जैसे) के पास कई उपयोगकर्ता हैं जिनके साथ आप काम करते हैं, तो ऐसे दो डुप्लिकेट रिपॉजिटरी दो बार बहुत परेशान होने लगते हैं।

ऐसा होने से रोकने के लिए, एक अच्छा और सुरुचिपूर्ण समाधान है - स्थानीय रिपॉजिटरी को दूसरे विभाजन में स्थानांतरित करें और उस पर सभी उपयोगकर्ताओं को कॉन्फ़िगर करें।
ऐसा करने के लिए, फ़ाइल खोलें
 %userprofile%/.m2/settings.xml 

जहां हम स्थानीय रिपॉजिटरी सेटिंग जोड़ते हैं
 <localRepository>E:/_MAVEN_LOCAL_REPOSITORY</localRepository> 

स्थानीय रिपॉजिटरी का उपयोग करते समय, ".m2" निर्देशिका का आकार 114Kb के क्रम के बराबर रहता है।

प्लगइन्स का उपयोग करना

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

ग्रहण के लिए एक परियोजना का निर्माण

मावेन-ग्रहण-प्लगइन कॉल
 mvn eclipse:eclipse 

IDEA के लिए एक प्रोजेक्ट बनाना

कॉल मावेन-विचार-प्लगइन
 mvn idea:idea 

लेकिन जब आपके इन आदेशों का निष्पादन वांछित परिणाम नहीं लाता है, तो आपको तथाकथित प्लग-इन के लिए सहायता को देखना चाहिए, जिसे निम्न प्रकार से कहा जा सकता है:
 mvn <plugin_name>:help 

जहाँ आपको एक्सेस करने वाले प्लगइन के लिए कॉन्फ़िगरेशन और संभावित मापदंडों का वर्णन किया जाएगा।

पीढ़ी के रूप में, आप इस प्रकार से कट्टरपंथियों पर मदद का अनुरोध कर सकते हैं:
 mvn archetype:generate 

चींटी + आइवी


चींटी एक और निर्माण प्रणाली है
आइवी एक निर्भरता प्रबंधक है जो विभिन्न रिपॉजिटरी तक पहुंच सकता है और उनमें आवश्यक जानकारी पा सकता है और इसे स्थानीय रिपॉजिटरी (स्थानीय मशीन पर कुछ कैश) में लोड कर सकता है।

चींटी, मेरी राय में, मावेन की तुलना में स्वतंत्रता की एक बड़ी डिग्री देती है (जिसमें, आप एंटा कार्यों / कार्यों तक भी पहुंच सकते हैं), यदि केवल इसलिए कि आपको अपनी विधानसभा के आवश्यक चरणों में से एक को स्वचालित करने की आवश्यकता नहीं है ऐसा करने के लिए, अपने स्वयं के मावेन प्लगइन को लागू करें। दूसरे शब्दों में, चींटी को अपनी परियोजना के निर्माण के लिए कुछ कार्यों को जल्दी से स्वचालित करने के लिए अनुकूलित किया जाता है और जहां कोई भी कदम आप पक्ष में लेते हैं, उसे भागने के रूप में नहीं माना जाएगा और निष्पादन द्वारा दंडनीय होगा।

इस प्रणाली (सबसे सामान्य) के बारे में हब्रे पर क्या था इसकी सूची (उपरोक्त क्रम में फिर से पढ़ना बेहतर है):

आइवी स्थानीय भंडार

स्थानीय आइवी रिपॉजिटरी के प्लेसमेंट और कॉन्फ़िगरेशन के साथ एक समान समस्या, जो डिफ़ॉल्ट रूप से स्थित है
 %userprofile%/.ivy2/cache 

सिस्टम कॉन्फ़िगरेशन "ivysettings.xml" से पढ़ा जाता है, जिसे निम्नानुसार भी जोड़ा जा सकता है:
 <ivy:settings file="${ivy.settings.file}" /> 

लेकिन स्थानीय रिपॉजिटरी के प्लेसमेंट को "कैश" अनुभाग में फिर से परिभाषित किया जा सकता है, जो विशेषता "defaultCacheDir" को निर्दिष्ट करता है:
 <caches defaultCacheDir="${ivy.settings.cache}"> <cache name="cache"/> </caches> 

यह उदाहरण पूर्वनिर्धारित चर / संपत्ति (संपत्ति) "ivy.settings.cache" का उपयोग करता है।
Ivysettings.xml उदाहरण के लिए
 <ivysettings> <settings defaultResolver="repository" validate="false"/> <caches defaultCacheDir="${ivy.settings.cache}"> <cache name="cache"/> </caches> <resolvers> <chain name="repository" changingPattern="*"> <!--    --> <filesystem name="ivy_repository_name" changingPattern="*"> <ivy pattern="${repository.base.dir}/[organisation]/[module]/[revision]/ivy-[revision].xml" /> <artifact pattern="${repository.base.dir}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> <artifact pattern="${repository.base.dir}/[organisation]/[module]/[revision]/[artifact].[ext]" /> </filesystem> </chain> </resolvers> </ivysettings> 


निष्कर्ष


विधानसभा प्रणालियों से परिचित होने पर, आपको शांत रहने की जरूरत है, याद रखें कि यह "मदद करने के लिए" लिखा / लागू किया गया था। इसलिए, यदि कोई वस्तु आपके लिए उपयुक्त नहीं है, तो उसे पुन: कॉन्फ़िगर करने या अपने असंतोष को कम करने का एक तरीका होना चाहिए।

Source: https://habr.com/ru/post/In218597/


All Articles