1.1 बड़े कार्यक्रम

हम पहले ही सीख चुके हैं कि छोटे प्रोग्राम कैसे लिखे जाते हैं, तो अब हम सीखेंगे कि बड़े प्रोग्राम कैसे लिखे जाते हैं। जैसा कि आप जानते हैं, कार्यक्रम जितना बड़ा और जटिल होता है, उसके विकास के लिए उतना ही अधिक पैसा दिया जाता है :) और आइए थोड़ी पृष्ठभूमि के साथ शुरू करें ...

जैसे-जैसे कार्यक्रम आकार में बढ़ते हैं, डेवलपर्स को दो नई चुनौतियों का सामना करना पड़ता है:

  • बड़ी संख्या में लोग एक ही कार्यक्रम पर काम कर रहे हैं।
  • ऐसा कोई व्यक्ति नहीं है जो कार्यक्रम के पूरे कोड को जानता हो।

बहुत बार, ऐसी स्थितियाँ उत्पन्न होने लगीं जब एक प्रोग्रामर ने प्रोग्राम के एक स्थान पर बग को ठीक कर दिया और उसी समय दूसरे में कुछ तोड़ दिया। रिलीज़ दस्तावेज़ीकरण में यह मज़ाक भी है:

परिवर्तनों की सूची:

  • फिक्स्ड पुराने कीड़े :)
  • नए जोड़े गए :(

फिर वे इस समस्या को हल करने के लिए दो दृष्टिकोण लेकर आए: तकनीकी और प्रबंधकीय।

तकनीकी दृष्टिकोण यह था कि कार्यक्रमों को भागों में विभाजित किया गया: पुस्तकालय और मॉड्यूल । ऐसा प्रत्येक मॉड्यूल एक छोटी ईंट था जिससे बड़ी परियोजनाओं का निर्माण किया गया था। पुस्तकालय ऐसे सार्वभौमिक घटक हैं जिनका उपयोग विभिन्न कार्यक्रमों में किया जा सकता है।

प्रबंधकीय दृष्टिकोण और भी दिलचस्प था - उन्होंने उन लोगों की संख्या को सीमित कर दिया जो एक परियोजना/पुस्तकालय पर काम कर सकते थे। अनुभवजन्य रूप से, वे एक नियम के साथ भी आए: टीम इतनी बड़ी होनी चाहिए कि "इसे दो पिज्जा से खिलाया जा सके। " आमतौर पर इसका मतलब यह है कि अगर किसी प्रोजेक्ट पर 8 से ज्यादा लोग काम कर रहे हैं , तो उसे दो प्रोजेक्ट में बांटने की जरूरत है।

यह जावा डेवलपर समुदाय में सभी अवसरों के लिए पुस्तकालय लिखने और उन्हें सार्वजनिक रूप से उपलब्ध कराने के लिए लोकप्रिय हो गया है। इस प्रकार, जावा प्रोग्रामर उसी कोड को फिर से नहीं लिख सकते थे (जो अक्सर कच्चा और निहित बग था), लेकिन तैयार और सिद्ध समाधानों का उपयोग करते हैं ।

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

दूसरे, कोड के आकार पर सर्वरों की व्यावहारिक रूप से कोई सीमा नहीं है। एक मोबाइल एप्लिकेशन का डेवलपर इसे 10 मेगाबाइट, एक डेस्कटॉप एप्लिकेशन - 100 मेगाबाइट में रटने की कोशिश करता है। और एक जावा बैकएंड डेवलपर कई दसियों गीगाबाइट पुस्तकालयों को एक परियोजना में रट सकता है और कोई भी उसे एक शब्द नहीं कहेगा :)

वैसे ये कोई मजाक नहीं है. आप कई दर्जन मॉड्यूल और कुछ सौ पुस्तकालयों के साथ बैकएंड प्रोजेक्ट आसानी से पा सकते हैं। लेकिन इस तरह की परियोजनाओं के लिए स्क्रिप्ट का वर्णन करना (और बदलना!) बेहद मुश्किल हो गया है।

और फिर मावेन दिखाई दिया।

1.2 मावेन का परिचय

मावेन परियोजना निर्माण प्रबंधन के लिए एक विशेष "ढांचा" है। यह 3 चीजों का मानकीकरण करता है:
  • परियोजना का विवरण;
  • प्रोजेक्ट बिल्ड स्क्रिप्ट;
  • पुस्तकालयों के बीच निर्भरता।

मावेन का पूर्ववर्ती चींटी था , और इसका उत्तराधिकारी ग्रैडल है । लेकिन यह मेवेन था जिसने तीन सूचीबद्ध मानकों को विकसित और सिद्ध किया, और उनकी बातचीत को भी नियंत्रित किया। वे ही थे जिन्होंने जावा समुदायों के काम को एक नए स्तर पर पहुँचाया। आइए इसे और विस्तार से देखें।

मावेन

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

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

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

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

1.3 मावेन को डाउनलोड और इंस्टॉल करें

मावेन की एक आधिकारिक साइट maven.apache.org है । परियोजना पर बहुत सारे दस्तावेज हैं, इसलिए यदि आपको कोई कठिनाई या अतिरिक्त प्रश्न हैं - तो आएं, शर्माएं नहीं।

साथ ही डाउनलोड पृष्ठ ( https://maven.apache.org/download.cgi ) पर आप मावेन आर्काइव (apache-maven-3.8.5-bin.zip) डाउनलोड कर सकते हैं। अनपैक्ड आर्काइव में लगभग 10 एमबी का समय लगेगा, हालांकि स्थानीय मावेन रिपॉजिटरी को अंततः कई सौ मेगाबाइट मेमोरी की आवश्यकता होगी।

मावेन जावा में लिखा गया है और इसके लिए कम से कम संस्करण 7 के JRE की आवश्यकता है, साथ ही परिभाषित JAVA_HOME पर्यावरण चर।

बस अपने कंप्यूटर पर मावेन के लिए एक फोल्डर बनाएं, उदाहरण के लिए, d:\devtools , और इसमें मावेन के साथ आर्काइव निकालें। नतीजतन, आपको d:\devtools\maven\bin जैसा फ़ोल्डर मिलना चाहिए , जहां परियोजना की मुख्य बाइनरी स्थित होगी।

1.4 पर्यावरण चर

उसके बाद, आपको अनपैक्ड आर्काइव से PATH पर्यावरण चर में बिन फ़ोल्डर में पथ जोड़ने की आवश्यकता है।

विंडोज 10 में पर्यावरण चर सेट करने के लिए, आपको कंट्रोल पैनल - सिस्टम - उन्नत सिस्टम सेटिंग्स पर जाना होगा। फिर "पर्यावरण चर" पर क्लिक करें, पथ ढूंढें और "संपादित करें" चुनें, फिर पंक्ति के अंत में पथ d:\devtools\maven\bin जोड़ें। ध्यान दें, पथ बिल्कुल बिन फ़ोल्डर तक ले जाना चाहिए।

यूनिक्स-आधारित ओएस पर, पर्यावरण चर को कंसोल कमांड के साथ जोड़ा जा सकता है:

export PATH=/opt/apache-maven-3.8.5/bin:$PATH

यदि आपने सब कुछ सही ढंग से किया है, तो कंसोल में आपको कमांड टाइप करने की आवश्यकता है: "एमवीएन-वी"। इसके जवाब में आपको कुछ ऐसा दिखाई देगा:

C:\Users\Zapp>mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: T:\apache-maven-3.0.5\bin\..
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1251
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

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

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

यदि ऐसा कोई फ़ोल्डर निर्दिष्ट नहीं है, तो मेवेन इसे वर्तमान उपयोगकर्ता की होम निर्देशिका में बना देगा। मेरी निर्देशिका है: C:\Users\Zapp\.m2

फ़ोल्डर का एक विशिष्ट नाम ".m2" है। हालांकि यह लिनक्स उपयोगकर्ताओं को डराता नहीं है - यह विभिन्न "रिपॉजिटरी" और / या सेवा जानकारी के किसी अन्य भंडारण के नामकरण के लिए एक काफी सामान्य दृष्टिकोण है।

महत्वपूर्ण! मावेन को सिस्टम फोल्डर में न रखें, क्योंकि इसे ऑपरेशन के दौरान इन फोल्डर के लिए लिखने की अनुमति की आवश्यकता होगी, जो एंटीवायरस या ऑपरेटिंग सिस्टम के लिए अस्वास्थ्यकर रुचि का हो सकता है।

संस्करण 3.5 से पहले मावेन को M2_HOME नामक एक पर्यावरण चर की आवश्यकता थी, लेकिन यह अब आवश्यक नहीं है।

आप लिंक पर मावेन को कॉन्फ़िगर करने के बारे में अधिक पढ़ सकते हैं: https://maven.apache.org/configure.html