1.1 मोठे कार्यक्रम

लहान प्रोग्राम कसे लिहायचे ते आपण आधीच शिकलो आहोत, आता आपण मोठे कसे लिहायचे ते शिकू. तुम्हाला माहिती आहेच की, हा कार्यक्रम जितका मोठा आणि गुंतागुंतीचा असेल तितके त्याच्या विकासासाठी अधिक पैसे दिले जातात :) आणि चला थोड्या पार्श्वभूमीपासून सुरुवात करूया ...

जसजसे कार्यक्रम आकारात वाढतात, विकासकांना दोन नवीन आव्हानांचा सामना करावा लागतो:

  • एकाच कार्यक्रमात मोठ्या संख्येने लोक काम करत आहेत.
  • अशी कोणतीही व्यक्ती नाही ज्याला प्रोग्रामचा संपूर्ण कोड माहित असेल.

बर्‍याचदा, जेव्हा प्रोग्रामरने प्रोग्रामच्या एका ठिकाणी बग निश्चित केला आणि त्याच वेळी दुसर्‍या ठिकाणी काहीतरी तोडले तेव्हा परिस्थिती उद्भवू लागली. प्रकाशन दस्तऐवजीकरणात हा विनोद देखील आहे:

बदलांची यादी:

  • जुने दोष निश्चित केले :)
  • नवीन जोडले :(

मग त्यांनी या समस्येचे निराकरण करण्यासाठी दोन दृष्टिकोन शोधून काढले: तांत्रिक आणि व्यवस्थापकीय.

तांत्रिक दृष्टीकोन असा होता की प्रोग्राम भागांमध्ये विभागले गेले होते: लायब्ररी आणि मॉड्यूल . असे प्रत्येक मॉड्यूल ही एक लहान वीट होती ज्यातून नंतर मोठे प्रकल्प बांधले गेले. लायब्ररी हे असे सार्वत्रिक घटक आहेत जे वेगवेगळ्या प्रोग्राम्समध्ये वापरले जाऊ शकतात.

व्यवस्थापकीय दृष्टिकोन अधिक मनोरंजक होता - त्यांनी एका प्रकल्प/लायब्ररीवर काम करू शकणार्‍या लोकांची संख्या मर्यादित केली. प्रायोगिकरित्या, त्यांनी एक नियम देखील आणला: संघ इतका मोठा असावा की "त्याला दोन पिझ्झासह दिले जाऊ शकते . " याचा अर्थ साधारणपणे असा होतो की जर एखाद्या प्रकल्पावर 8 पेक्षा जास्त लोक काम करत असतील तर ते दोन प्रकल्पांमध्ये विभागले जाणे आवश्यक आहे.

जावा विकसक समुदायामध्ये सर्व प्रसंगांसाठी लायब्ररी लिहिणे आणि त्यांना सार्वजनिकरित्या उपलब्ध करून देणे हे लोकप्रिय झाले आहे. अशाप्रकारे, Java प्रोग्रामर पुन्हा तोच कोड लिहू शकले नाहीत (जे बहुतेक वेळा कच्चे होते आणि त्यात बग होते), परंतु तयार आणि सिद्ध उपाय वापरतात .

सर्व्हर-साइड सोल्यूशन्स लिहिताना जावा भाषेला खूप लोकप्रियता मिळाली (ती बॅकएंडवर कार्य करते) हे एक अतिरिक्त प्रोत्साहन आहे. प्रथम, सर्व्हर सॉफ्टवेअरला विश्वासार्हतेसाठी उच्च आवश्यकता आहेत आणि वेळ-चाचणी लायब्ररी वापरणे नेहमीच आपला स्वतःचा कोड लिहिण्यापेक्षा श्रेयस्कर असते.

दुसरे म्हणजे, सर्व्हरला कोडच्या आकारावर व्यावहारिकपणे मर्यादा नाहीत. मोबाईल ऍप्लिकेशनचा डेव्हलपर 10 मेगाबाइट्स, डेस्कटॉप ऍप्लिकेशन - 100 मेगाबाइट्समध्ये क्रॅम करण्याचा प्रयत्न करतो. आणि जावा बॅकएंड डेव्हलपर प्रोजेक्टमध्ये अनेक गीगाबाइट्स लायब्ररी क्रॅम करू शकतो आणि कोणीही त्याला एक शब्दही बोलणार नाही :)

तसे, हा विनोद नाही. आपण अनेक डझन मॉड्यूल्स आणि दोनशे लायब्ररीसह बॅकएंड प्रकल्प सहजपणे पाहू शकता. परंतु अशा प्रकल्पांसाठी स्क्रिप्ट तयार करणे (आणि बदलणे!) वर्णन करणे अत्यंत कठीण झाले आहे.

आणि मग मावेन दिसू लागले.

१.२ मावेनचा परिचय

मावेन हे प्रोजेक्ट बिल्ड मॅनेजमेंटसाठी खास "फ्रेमवर्क" आहे. हे 3 गोष्टी प्रमाणित करते:
  • प्रकल्पाचे वर्णन;
  • प्रोजेक्ट बिल्ड स्क्रिप्ट;
  • ग्रंथालयांमधील अवलंबित्व.

मावेनचा पूर्ववर्ती मुंगी होता आणि त्याचा उत्तराधिकारी ग्रॅडल आहे . परंतु मावेननेच तीन सूचीबद्ध मानके विकसित आणि परिपूर्ण केली आणि त्यांच्या परस्परसंवादाचे नियमन देखील केले. त्यांनीच जावा समुदायांचे कार्य एका नवीन स्तरावर आणले. चला ते अधिक तपशीलवार पाहू.

मावेन

तांत्रिकदृष्ट्या, मावेन हा एक विशेष कार्यक्रम/सेवा आहे, ज्याचा मुख्य उद्देश प्रकल्प बांधण्याच्या प्रक्रियेचे व्यवस्थापन करणे आहे . हे फक्त संग्रहण म्हणून डाउनलोड केले जाऊ शकते आणि कोणत्याही निर्देशिकेत अनपॅक केले जाऊ शकते. यासाठी तुम्हाला विशेष इंस्टॉलरची आवश्यकता नाही.

तिच्याकडे ग्राफिकल इंटरफेस नाही - कन्सोल वापरून तिला सर्व आदेश दिले जातात . त्याच्यासह कार्य करणे अधिक सोयीस्कर बनविण्यासाठी, आपल्या OS मध्ये विशेष पर्यावरण व्हेरिएबल्सची नोंदणी करण्याची शिफारस केली जाते.

मावेनकडे विशेष भांडार (डिरेक्टरी / फोल्डर) देखील आहे जिथे ते प्रकल्प तयार करताना वापरत असलेल्या लायब्ररी संग्रहित करते. तुम्हाला डिस्कवरील काही फोल्डर निवडावे लागेल आणि ते रेपॉजिटरी म्हणून नियुक्त करावे लागेल.

आणखी एक मनोरंजक गोष्ट म्हणजे सर्व लायब्ररींसाठी जागतिक मावेन भांडाराची उपस्थिती, परंतु आम्ही याबद्दल थोड्या वेळाने बोलू.

1.3 Maven डाउनलोड आणि स्थापित करा

मावेनची अधिकृत साइट maven.apache.org आहे . प्रकल्पावर बरीच कागदपत्रे आहेत, म्हणून जर तुम्हाला काही अडचणी किंवा अतिरिक्त प्रश्न असतील तर - आत या, लाजू नका.

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

मावेन हे Java मध्ये लिहिलेले आहे आणि त्यासाठी किमान आवृत्ती 7 चे JRE आवश्यक आहे, तसेच परिभाषित JAVA_HOME पर्यावरण व्हेरिएबल्स आवश्यक आहेत.

फक्त तुमच्या संगणकावर Maven साठी एक फोल्डर तयार करा, उदाहरणार्थ, d:\devtools , आणि त्यात Maven सह संग्रहण काढा. परिणामी, तुम्हाला d:\devtools\maven\bin सारखे फोल्डर मिळेल , जेथे प्रकल्पाचे मुख्य बायनरी स्थित असतील.

1.4 पर्यावरण परिवर्तने

त्यानंतर, तुम्हाला बिन फोल्डरचा मार्ग अनपॅक केलेल्या संग्रहातून PATH पर्यावरण व्हेरिएबलमध्ये जोडण्याची आवश्यकता आहे.

Windows 10 मध्ये पर्यावरण व्हेरिएबल सेट करण्यासाठी, तुम्हाला कंट्रोल पॅनेल - सिस्टम - प्रगत सिस्टम सेटिंग्जवर जाण्याची आवश्यकता आहे. नंतर "Environment Variables" वर क्लिक करा, PATH शोधा आणि "संपादित करा" निवडा, त्यानंतर ओळीच्या शेवटी d:\devtools\maven\bin हा मार्ग जोडा . लक्ष द्या, पथ नक्की बिन फोल्डरकडे नेला पाहिजे.

युनिक्स-आधारित OS वर, कन्सोल कमांडसह पर्यावरण व्हेरिएबल जोडले जाऊ शकते:

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

आपण सर्वकाही योग्यरित्या केले असल्यास, नंतर कन्सोलमध्ये आपल्याला कमांड टाइप करणे आवश्यक आहे: "mvn -v". प्रतिसादात, तुम्हाला असे काहीतरी दिसेल:

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 स्थानिक Maven भांडार

तुम्ही एक विशेष फोल्डर देखील सेट करू शकता जिथे Maven जार लायब्ररी संग्रहित करेल जे प्रकल्प तयार करताना वापरेल. या फोल्डरला स्थानिक मॅवेन रेपॉजिटरी म्हणतात .

असे कोणतेही फोल्डर निर्दिष्ट केले नसल्यास, Maven ते वर्तमान वापरकर्त्याच्या होम डिरेक्टरीमध्ये तयार करेल. माझी निर्देशिका आहे: C:\Users\Zapp\.m2

फोल्डरला एक विशिष्ट नाव “.m2” आहे. जरी ते लिनक्स वापरकर्त्यांना घाबरत नसले तरी - विविध "रेपॉझिटरीज" आणि/किंवा सेवा माहितीच्या इतर कोणत्याही स्टोरेजला नाव देणे हा एक सामान्य दृष्टीकोन आहे.

महत्वाचे! मॅवेनला सिस्टम फोल्डर्समध्ये ठेवू नका, कारण ऑपरेशन दरम्यान या फोल्डर्सना लिहिण्याची परवानगी आवश्यक असेल, जे अँटीव्हायरस किंवा ऑपरेटिंग सिस्टमसाठी अस्वस्थ असू शकते.

आवृत्ती 3.5 च्या आधीच्या Maven ला M2_HOME नावाचे पर्यावरण व्हेरिएबल आवश्यक होते, परंतु हे आता आवश्यक नाही.

आपण लिंकवर मावेन कॉन्फिगर करण्याबद्दल अधिक वाचू शकता: https://maven.apache.org/configure.html