असेंबली सिस्टम के बारे में पिछले पोस्ट की निरंतरता -
बिल्डसिस्टम - इंट्रो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>
निष्कर्ष
विधानसभा प्रणालियों से परिचित होने पर, आपको शांत रहने की जरूरत है, याद रखें कि यह "मदद करने के लिए" लिखा / लागू किया गया था। इसलिए, यदि कोई वस्तु आपके लिए उपयुक्त नहीं है, तो उसे पुन: कॉन्फ़िगर करने या अपने असंतोष को कम करने का एक तरीका होना चाहिए।