Free YouTube Transcribe

Video transcript

Master Apache Maven in one video | POM, Dependencies & Lifecycle | Spring Boot Full Course #3

Coder Army · 21,693 words · 99 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

Intro

0:00हां जी तो करें स्टार्ट। वेलकम बैक कोडर

0:03आर्मी हमारे इस जावा स्प्रिंग फ्रेमवर्क

0:05की सीरीज में और आज हम एक बहुत ही

0:07इंटरेस्टिंग टॉपिक मेवन के बारे में बात

0:09करने वाले हैं। अब मेवन है क्या? आप देखो

0:11जावा में जब आप एक प्रोजेक्ट लिखते हो तो

0:13उस प्रोजेक्ट को मैनेज करने के लिए ना

0:15आपको एक टूल चाहिए होता है। आपके पास

0:17मार्केट में बहुत सारे टूल्स अवेलेबल हैं।

0:18आपके पास मेवन है, ग्रेडल है। पर हम

0:21ज्यादातर मेवन को यूज़ करना पसंद करते हैं।

0:23एक तो वो वाइडली यूज़ होता है बहुत सारे

0:24प्रोजेक्ट्स में ऑलरेडी। ठीक है? और मेवेन

0:26को समझना भी बहुत इजी है। तो आज हम मेवेन

0:29के बारे में डेप्थ में जानने वाले हैं कि

0:31वो एक्चुअली है क्या? हमारे लिए क्या-क्या

0:32वो कर सकता है और हमारी लाइफ को वो कितना

0:34आसान बना देगा। ठीक है? तो चलो बहुत मजा

0:37आएगा। शुरू करते हैं मेवन आर्किटेक्चर के

0:39साथ। हां जी। तो मेवन को समझने से पहले ना

0:42हमें एक चीज समझनी पड़ेगी कि जार फाइल्स

What is JAR ?

0:45क्या होती हैं। राइट? हमने अपने लास्ट

0:47लेक्चर में भी देखा था कि हम जार फाइल

0:48बनाते हैं। है ना? जब हमने अपनी एक

0:50स्प्रिंग बूट की एप्लीकेशन को डाउनलोड

0:51किया था स्प्रिंग इनिशलाइजर से। तो पहले

0:53ये समझते हैं। ठीक है? तो देखो अभी तक जो

0:55हमें अपना फ्लो पता है वो क्या होता है कि

0:57लेट्स से हम कोई जावा का प्रोग्राम लिखते

0:59हैं और लेट्स से फाइल का नाम है डेमो डॉट

1:01जावा तो आपने इस जावा का जैसे ही

1:02प्रोग्राम लिखा आप क्या करोगे आप इसको एक

1:04कंपाइलर के थ्रू गुजारोगे और आपको मिलेगा

1:07आपका बाइट कोड जिसका एक्सटेंशन होता है

1:09डॉट क्लास फाइल ठीक है तो आपको डेमो डॉट

1:11क्लास फाइल मिलेगी और आपको पता है ये जो

1:13आपका बाइट कोड है इसको कोई भी जेवीएम रन

1:16कर सकता है और आपके प्रोग्राम का आ जाएगा

1:18आउटपुट है ना तो ये तो पता है हमें अपना

1:20नॉर्मल फ्लो कुछ इस तरीके से होता है पर

1:22आप सोचो किसी भी एक रियल वर्ड वर्ल्ड

1:24एप्लीकेशन में आप एक प्रोजेक्ट बिल्ड कर

1:26रहे हो जावा को लेके और जरूरी नहीं है वो

1:28एक वेब प्रोजेक्ट हो। आप हो सकता है कोई

1:29कंसोल बेस्ड प्रोजेक्ट बिल्ड कर रहे हो

1:31जिसमें बहुत सारे क्लासेस हो सकती हैं

1:33जावा की। तो लेट्स से आपके पास एक ऑर्डर

1:35क्लास है तो आपके पास हो गया ऑर्डर डॉट

1:37java है ना आपके पास एक यूजर क्लास हो

1:39सकती है। तो आपके पास ये हो गया यूजर डॉट

1:41java और लेट्स से आपके पास पेमेंट की

1:44क्लास हो सकती है। पेमेंट डॉट java एंड सो

1:46ऑन। आपके पास बहुत सारी फाइल्स हो सकती

1:49हैं। ठीक है? बहुत सारी जावा फाइल्स। अब

1:51अगर आप एक-एक करके इन्हें कंपाइल करोगे तो

1:54पहली बात तो बहुत टाइम लगेगा और अगर आपने

1:55कंपाइल कर भी दिया मान लो सबको एक साथ

1:57कंपाइल कर भी दिया तो उसके बाद आपकी बहुत

1:59सारी क्लास फाइल्स बन जाएगी। राइट? तो

2:01इसके अल्टरनेटिव डॉट क्लास होगी। एक यूजर

2:03के अल्टरनेटिव डॉट क्लास होगी। ठीक है?

2:06सेम आपकी पेमेंट के अल्टरनेटिव डॉट क्लास

2:08फाइल बन जाएगी। एंड सो ऑन। सबकी अपनी-अपनी

2:10एक क्लास फाइल बन जाएगी। अब मुझे बताओ अगर

2:13आपको इस एप्लीकेशन को या इस प्रोजेक्ट को

2:16अपने किसी फ्रेंड को शेयर करना है तो आप

2:17कैसे करोगे? राइट? अब एक तरीका तो यह है

2:20कि आप यह सारी क्लास फाइल्स उसके साथ शेयर

2:22कर दो ईमेल करके या किसी भी तरीके से। पर

2:25अगेन वह तो बहुत बेकार तरीका है। उसको

2:26सारी क्लास फाइल्स एक-एक करके डाउनलोड

2:28करनी पड़ेगी अपने सिस्टम पे और उसको रन

2:29करना पड़ेगा। इससे बेटर क्या करोगे आप? आप

2:32उसको ज़िप कर सकते हो एक फोल्डर में। राइट?

2:34आप उसको एक फोल्डर में ज़िप आउट कर दो।

2:35सारी क्लासेस को एक फोल्डर में डालो। उसको

2:37ज़िप कर दो और वो फोल्डर आप अपने फ्रेंड के

2:39साथ शेयर कर दो। फिर वो फ्रेंड आपका उस

2:41फोल्डर को अनजिप करके अपने इंटेलिज या

2:43किसी भी आईडी में उस फोल्डर को खोल के ये

2:45क्लासेस चला सकता है। ओके? अब टेक्निकली

2:48तो आप यह कर सकते हो पर यह बहुत अगली है।

2:51राइट? यह है यार ना बहुत सारी प्रॉब्लम्स

2:52आपके लिए क्रिएट कर देगा। अब यहां तो हमने

2:54तीन-चार फाइल्स ही बनाई है। पर आप मान लो

2:56एक रियल प्रोजेक्ट में 100्स ऑफ जावा

2:57फाइल्स हो सकती हैं। राइट? तो हो सकता है

2:59कुछ फाइल्स आपके साथ मिस आउट हो जाए। है

3:01ना? आपका फोल्डर स्ट्रक्चर वो ना रहे जो

3:03आपने इंटेंड किया था रहने के लिए। है ना?

3:05आपका फ्रेंड एक दूसरा फोल्डर स्ट्रक्चर

3:07यूज़ करें। ठीक है? और हो सकता है कुछ

3:09एक्स्ट्रा रिसोर्सेज हो। जैसे कि कुछ

3:10इमेजज़ हो या स्टैटिक रिसोर्सेज, कुछ

3:12प्रॉपर्टीज फाइल हो, है ना? जो मिस आउट हो

3:14जाए आपके फ्रेंड को शेयर होने के लिए।

3:16राइट? तो बहुत सारे इफ्स एंड बड्स हैं। तो

3:19ये अच्छा प्रोसेस नहीं है कि आप अपने

3:20प्रोजेक्ट को ज़िप करो या फिर एक-एक करके

3:22फाइल को शेयर करो। तो देखो ये तो हमें समझ

3:24आ गया कि ये अच्छा तरीका तो नहीं है राइट?

3:27अपनी फाइल्स को शेयर करने का। तो जावा को

3:29ना एक तरीका चाहिए था कि कैसे जावा

3:31डेवलपर्स अपने प्रोजेक्ट को या अपनी

3:33प्रोजेक्ट की मल्टीपल फाइल्स को शेयर कर

3:35सकें। और वहां से फिर जन्म होता है जार

3:37का। जार की फुल फॉर्म होती है जावा

3:39आर्काइव्स। जावा आर्काइव्स। ठीक है? और

3:42जार कुछ भी नहीं है। आप इसको एक जिप फाइल

3:44की तरह ही समझ सकते हो जिसके अंदर आप

3:46मल्टीपल डॉट क्लास फाइल स्टोर कर सकते हो

3:48और अपने फ्रेंड के साथ शेयर कर सकते हो।

3:50तो बेसिकली इसको हम क्या बोल सकते हैं? तो

3:53बेसिकली इसको हम बोल सकते हैं एक पैकेज।

3:55तो आपका जार एक पैकेज का काम करता है। ठीक

3:57है? जिसके अंदर क्या होता है? जिसके अंदर

3:59मल्टीपल क्लास फाइल्स हो सकती हैं। एंड

4:03नॉट जस्ट मल्टीपल क्लास फाइल्स। इसके अंदर

4:04मल्टीपल चीजें हो सकती हैं। राइट? जैसे कि

4:06मैं यहां पे लिखता हूं। इसके अंदर हो सकती

4:08हैं ऑब्वियसली मल्टीपल क्लास फाइल्स। ठीक

4:10है? इसके अंदर हो सकती है आपकी रिसोर्सेज।

4:12ठीक है? अब रिसोर्सेज जैसे कुछ इमेजज़ हो

4:15गया या कुछ प्रॉपर्टीज फाइल हो गई। राइट?

4:18ये सब इसके अंदर आ सकती है। और इसके अंदर

4:21आ सकता है आपका फोल्डर्स या आपके पैकेजेस।

4:23ठीक है? जितने भी आपने बनाए रखे हैं जावा

4:25में। बेसिकली उन सबको ये पैक कर देता है

4:27एक पैकेज के अंदर जिसको वो बोलता है जार

4:30जे एआर। और आप अपने फ्रेंड के साथ यह जार

4:33फाइल शेयर कर सकते हो। आपका फ्रेंड इस जार

4:35फाइल को अपने एप्लीकेशन के अंदर इंटीग्रेट

4:38कर सकता है और उसका काम आसान हो गया।

4:40राइट? तो बेसिकली अगर मैं मोटा-मोटा बोलूं

4:42ना तो जार फाइल के दो एडवांटेज हैं। ठीक

4:44है? एक तो आपका आप अपने कोड को आप अपनी

4:48लाइब्रेरी को आपके फ्रेंड के साथ शेयर कर

4:50सकते हो। तो मैं लिख सकता हूं टू शेयर योर

4:54जावा कोड ईजीली। अब मान लो आपने ना एक

4:57लाइब्रेरी बनाई। लेट्स से कैलकुलेटर। ठीक

Library vs Application

4:59है? अब सबसे पहले अ कई लोगों के मन में

5:02डाउट होता है कि एक लाइब्रेरी और

5:03एप्लीकेशन में क्या फर्क होता है? तो उसको

5:05समझ लो। ठीक है? लाइब्रेरी का मतलब कोई भी

5:07ऐसा कोड जो रनेबल नहीं है। राइट? उसके

5:09अंदर हो सकता है कोई मेन फंक्शन ना हो

5:11जिसको आप रन करो। राइट? उसके अंदर कुछ

5:12पैकेजेस, कुछ क्लासेस होंगी। ठीक है? और

5:14वो पैकेजेस या क्लासेस कोई और यूज़ कर सकता

5:17है। कोई और एप्लीकेशन यूज़ कर सकती है जो

5:19एक्चुअली रन हो सकती है। राइट? तो

5:21एप्लीकेशन मतलब जो एक्चुअली रन हो सकती है

5:23जिसके अंदर एक मेन फंक्शन होगा। वो उसको

5:25आप रन कर सकते हो पूरी की पूरी एप्लीकेशन

5:26को। राइट? और लाइब्रेरी मतलब जिसके अंदर

5:28कुछ क्लासेस हैं। आप उसको इंडिपेंडेंटली

5:30रन नहीं कर सकते। पर आप किसी लाइब्रेरी को

5:32किसी एप्लीकेशन के अंदर डाल सकते हो।

5:34राइट? हमने लास्ट क्लास में भी देखा था

5:35अगर आप एक लाइब्रेरी को किसी एप्लीकेशन के

5:38अंदर यूज़ करते हो तो वो लाइब्रेरी इस

5:39एप्लीकेशन के लिए डिपेंडेंसी बन जाती है।

5:41तो हम इसे स्प्रिंग बूट की भाषा में हम

5:43Aven की भाषा में डिपेंडेंसी बोलते हैं कि

5:45ये जो लाइब्रेरी है ना ये हमारे लिए एक

5:46डिपेंडेंसी है एप्लीकेशन के अंदर। ठीक है?

5:49तो हम फर्क समझ गए। अब हम बहुत सारी जावा

5:51की खुद से लाइब्रेरीज़ यूज़ करते हैं।

5:53इनबिल्ट लाइब्रेरीज़। तो वो इंडिपेंडेंट

5:55रनेबल कोड नहीं होता। वो बस क्लासेस होती

5:56हैं जिसको हम यूज़ कर सकते हैं। ओके? तो

5:58लेट्स से आपने कैलकुलेटर की एक लाइब्रेरी

6:00बनाई तो अगेन उसके अंदर आपने बहुत सारी

6:02क्लासेस लिखी होंगी। फाइनली उसको एक पैकेज

6:03बनाया होगा कैलकुलेटर डॉट जार के अंदर।

6:06ठीक है? अब आप ये लाइब्रेरी अपने फ्रेंड

6:07के साथ शेयर कर सकते हो और आपका फ्रेंड

6:09अपनी एप्लीकेशन के अंदर जो बेसिकली रनेबल

6:11एप्लीकेशन होगी उसके अंदर इस लाइब्रेरी के

6:14मेथड्स को और इस लाइब्रेरी की क्लासेस को

6:16यूज़ कर सकता है। राइट? तो ये तो हो गया कि

6:18रीज़न नंबर वन आप खुद अपने जावा कोड को

6:21इज़ली शेयर कर सकते हो। पर इससे भी एक

6:23इंपॉर्टेंट रीज़न है रीज़न नंबर टू कि आप

6:25अपने खुद की एप्लीकेशन में थर्ड पार्टी

6:27लाइब्रेरीज को इंटीग्रेट कर सकते हो। तो

6:29राइट? तो मैं लिख सकता हूं टू यूज़

6:32एक्सटर्नल लाइब्रेरीज़ योरसेल्फ। अब इसका

6:34क्या मतलब हुआ? लेट्स से बहुत सिंपल

6:35एग्जांपल लेते हैं कि आपने जावा का कोड

6:37लिखा और आपको ना डेटाबेस से कनेक्ट करना

6:40है अपने जावा के एप्लीकेशन को। राइट? तो

6:42अगर आपको जावा के एप्लीकेशन को डेटाबेस से

6:44कनेक्ट करना है। तो आपको एक डेटाबेस

6:45कनेक्टर चाहिए होगा। राइट? अगर आप My

6:47सीक्वल से हो तो आपको माय सीक्वल कनेक्टर

6:48चाहिए होगा। पोस्ट गैस के लिए पोस्ट गैस

6:50कनेक्टर चाहिए होगा वगैरह वगैरह। तो

6:51ऑब्वियसली आप वो कनेक्टर स्क्रैच से खुद

6:53से तो नहीं लिखोगे। राइट? तो एक थर्ड

6:54पार्टी लाइब्रेरी बनी होगी। है ना? आप

6:56उसको यूज़ करोगे। फॉर एग्जांपल Mys सीक्वल

6:58कनेक्टर के लिए Mys सीक्वल कनेक्टर डॉट

7:00जार फाइल आप डाउनलोड करोगे। तो लेट्स से

7:02आप डाउनलोड करते हो Mys सीक्वल कनेक्टर

7:05डॉट जार। ऑब्वियसली उसका नाम कुछ और हो

7:07सकता है। ठीक है? एग्जैक्ट नाम पर आप समझ

7:09गए कि हमने उसकी जार फाइल डाउनलोड करी

7:11होगी अपनी एप्लीकेशन के अंदर और उसको हमने

7:13यूज़ किया होगा। राइट? तो या तो आप अपना

7:15कोड शेयर कर रहे हो तब भी आप जार फाइल

7:17शेयर करते हो। इनफैक्ट जो आप थर्ड पार्टी

7:18लाइब्रेरीज यूज करते हो अपनी एप्लीकेशन के

7:20अंदर जो आप एज अ डिपेंडेंसी आपके लिए काम

7:22करती है तो वो भी आप एज अ जार फाइल ही यूज

7:25कर रहे होते हो। ठीक है? तो अब आप चाहे

7:27कोई स्प्रिंग बूट का प्रोजेक्ट बनाओ तो

7:28स्प्रिंग बूट के प्रोजेक्ट बनाने के लिए

7:30भी आपने कुछ डिपेंडेंसीज यूज़ की होगी। हो

7:31सकता है स्प्रिंग बूट की डिपेंडेंसी,

7:33स्प्रिंग एमवीसी की डिपेंडेंसी

7:34वगैरह-वगैरह। राइट? या फिर अगर आप कोई

7:36डेटाबेस से कनेक्ट करने का कोड लिखोगे।

7:38उसके लिए आप थर्ड पार्टी लाइब्रेरीज यूज़

7:39करोगे। इनफैक्ट आप बहुत सारी लाइब्रेरीज़

7:41अपने कोड में यूज़ करते हो। ठीक है? ओके।

7:44अब यहां पे एक इंटरेस्टिंग चीज और कई

7:47लोगों के मन में डाउट होता है कि लेट्स से

7:48मैंने बनाई अपनी खुद की एक एप्लीकेशन। ठीक

7:50है? उस एप्लीकेशन में मेरे खुद का कुछ कोड

7:52होगा। लेट्स से मेरा खुद का डेमो डॉट जावा

7:55कुछ फाइल हुई। कुछ फाइल हुई लेट्स से अ

7:57यूजर डॉट jवा वगैरह-वगैरह। ठीक है? कुछ

7:59मेरी खुद की जावा फाइल्स होंगी। कुछ मैं

8:01थर्ड पार्टी लाइब्रेरीज यूज़ करूंगा। लेट्स

8:03से मैंने Mys सीक्वल कनेक्टर डॉट जार फाइल

8:06यूज़ करी। ऐसे ही मान लो मैंने मल्टीपल जार

8:07फाइल्स और यूज़ करी है ना? तो जब मैं अपनी

8:10पूरी एप्लीकेशन का जार बनाऊंगा तो क्या जो

8:12मेरा जार प्रॉपर बनेगा उसके अंदर ये मेरी

8:14जो थर्ड पार्टी डिपेंडेंसीज है उनका जार

8:16भी प्रेजेंट होगा। अब इसका आंसर है कि

8:18डिपेंड करता है कि आपने एक एप्लीकेशन

8:19बिल्ड करी है या लाइब्रेरी बिल्ड करी है।

8:21अगर बिल्ड करी है आपने सिर्फ एक

8:23लाइब्रेरी। ठीक है? तो उस लाइब्रेरी के

8:25अंदर आपके जो एक्सटर्नल जार्स हैं वो

8:26प्रेजेंट नहीं होते। आपके पास बस आपके कोड

8:29प्रेजेंट होता है। ठीक है? अब आप बोलोगे

8:31तो भैया अगर कोई हमारी लाइब्रेरी यूज़ कर

8:32रहा है तो उसे कैसे पता लगेगा कि मेरी

8:34लाइब्रेरी को किसी और लाइब्रेरी की जरूरत

8:36है। राइट? यही तो हुआ। लेट से ये आपकी

8:38एप्लीकेशन नहीं है। ये आपकी एक लाइब्रेरी

8:40है। एक लाइब्रेरी। ठीक है? और आपकी

8:42लाइब्रेरी के अंदर दो फाइल्स हैं। डेमो

8:43डॉट जावा यूजर डॉट jवा जो अंदर से माय

8:46सीक्वल कनेक्टर डॉट जार एक जार फाइल यूज़

8:48करती है। और आपकी लाइब्रेरी को अब कोई यूज़

8:50करता है। तो आपने क्या किया होगा? अपनी

8:51लाइब्रेरी की एक जार फाइल बनाई होगी। ठीक

8:53है? तो मैं इसको ऐसे लिख सकता हूं। लेट्स

8:54से ये आपकी लाइब्रेरी है। आपने बनाया इसका

8:56एक जार और उसका नाम आपने रख दिया लेट्स से

9:00अय लाइब्रेरी डॉट जार।

9:03समथिंग लाइक दिस। ठीक है? तो आपका माय

9:05लाइब्रेरी डॉट जा आपका जा रहा है। है ना?

9:07और मैंने क्या कहा था अगर ये लाइब्रेरी है

9:08तो इसके अंदर ये वाला माय सीक्वल कनेक्टर

9:10प्रेजेंट नहीं होगा। तो जो भी आपकी

9:13लाइब्रेरी यूज़ करेगा उसे कैसे पता चलेगा?

9:14वो ऐसे पता चलेगा कि जो आपकी लाइब्रेरी है

9:16ना ये ठीक है? इसके अंदर होगी एक स्पेशल

9:19फाइल जो कि अभी हम देखेंगे वो कौन सी फाइल

9:21होती है। वो बताएगी कि इस लाइब्रेरी को

9:23चलने के लिए और फर्दर कौन-कौन सी

9:25लाइब्रेरीज की जरूरत है। तो बेसिकली जो

9:27आपका फ्रेंड होगा जो आपका my लाइब्रेरी

9:29यूज़ करना चाहेगा उसको पता रहेगा कि मेरे

9:31को इंडिपेंडेंसीज की भी जरूरत है। अब वो

9:33क्या इसको मैनुअली डाउनलोड करेगा? वो अभी

9:35हम आगे देखेंगे कि मेवन आपकी उसमें कैसे

9:37हेल्प करता है। बट अगेन यहां पे

9:39इंफॉर्मेशनेशन प्रेजेंट होती है। लेकिन

9:41अगर मान लो आपने बनाई है एक एप्लीकेशन और

9:43लेट्स से वो स्प्रिंग बूट एप्लीकेशन है।

9:45ठीक है? तो उसमें आपका खुद का कोई कोड

9:47होगा डेमो डॉट java यूजर डॉट java अब

9:49क्योंकि वो एक एप्लीकेशन है तो उसमें एक

9:51मेन डॉट java भी होगी राइट आपकी मेन फाइल

9:53जो रनेबल होती है और लेट्स से उसमें होगी

9:55कुछ डिपेंडेंसीज सेम मैं मान के चलता हूं

9:57माय सीक्वल कनेक्टर डॉट जार फाइल एक हो

10:00सकती है डॉट जार ठीक है इसको मैं कर देता

10:02हूं थोड़ा सा बड़ा कुछ इस तरीके से अब जब

10:05आप अपने इस एप्लीकेशन का जार बनाओगे तो

10:08लेट्स से माय एप्लीकेशन डॉट जार ठीक है

10:12इसको मैं थोड़ा सा इधर कर देता हूं कुछ इस

10:14तरीके से तो उस केस में क्या होगा? जो

10:16आपका माय एप्लीकेशन डॉट जार है, यह एक

10:18इंडिपेंडेंट जार है। इसको हम बोलते हैं

10:20एग्जीक्यूटेबल जार। एग्जीक्यूटेबल जार।

10:22ठीक है? यह इंडिपेंडेंटली एग्जीक्यूट हो

10:25सकता है। तो जैसे ही आपका फ्रेंड माय

10:26एप्लीकेशन डॉट जार को यूज़ करेगा, तो इसके

10:28अंदर जो फर्दर डिपेंडेंसीज़ हैं जैसे कि

10:30Mysql कनेक्टर वो भी अपने आप आ जाएंगी।

10:32उनको अलग से डाउनलोड करने की जरूरत नहीं

10:33होगी। ठीक है? तो आई होप आपको ये फर्क समझ

10:36आ गया होगा। लाइब्रेरी और एप्लीकेशन के

10:37बीच में क्या फर्क है। और जब आप जार बनाते

10:40हो एक लाइब्रेरी की तो क्या होता है? और

10:41जब आप जार बनाते हो एक एप्लीकेशन की फॉर

10:43एग्जांपल एक स्प्रिंग बूट एप्लीकेशन की तो

10:44क्या होता है? तो वो आपकी एक

10:45एग्जीक्यूटेबल जार बनती है। इस केस में ये

10:47नॉन एग्जीक्यूटेबल जार है। ये खुद

10:48एग्जीक्यूट नहीं हो सकती। इसके अंदर सिर्फ

10:50अपना डिटेल्स रहेंगी। अपनी जावा फाइल्स

10:52रहेंगी और जो भी एक्सटर्नल लाइब्रेरी होगी

10:54उसकी डिटेल यहां पे नहीं रहती है। वो इसके

10:56अंदर नहीं रहती है बल्कि वो डिटेल्स एक एक

10:58स्पेशल फाइल के अंदर मौजूद होती है यहां

11:00पे। राइट? वो स्पेशल फाइल एप्लीकेशन के

11:02अंदर भी होती है। राइट? वो स्पेशल फाइल का

11:03नाम है pm डॉट. एक्सml अगर आप मेवन यूज़ कर

11:05रहे हो। अभी उसके बारे में हम डिस्कस

11:06करेंगे। पर आई होप आपको समझ आ गया होगा कि

11:08यहां पे काम कैसे होता है। ठीक है? ओके।

11:11तो जब आप कोड लिखोगे ना अपना खुद का तो

11:13उसमें आपकी खुद की जावा कोड होंगे

11:15ऑब्वियसली प्लस आपकी कुछ थर्ड पार्टी

11:18लाइब्रेरीज होंगी। थर्ड पार्टी लाइब्रेरीज

11:20जिनको आपको पता है हम जार फाइल्स बोल सकते

11:22हैं। थर्ड पार्टी जार फाइल्स और इन दोनों

11:24को मिला करके आप क्या करोगे? इन दोनों को

11:26मिला करके आप करोगे कंपाइल और अगेन आपका

11:30कंपाइल कोड जेवीएम करेगा रन। राइट? ये तो

11:33हमें फ्लो पता है। ठीक है? आपका कंपाइल

11:35कोड रन होगा। अब आपको पता है ना जो थर्ड

11:37पार्टी लाइब्रेरीज हैं जिसकी आपने जार

11:38डाउनलोड करी होगी यह तो कंपाइल्ड कोड्स

11:41होगा। राइट? यह जो जार है इसके अंदर

11:43कंपाइल्ड कोड प्रेजेंट होता है जो कि हमने

11:45ऊपर भी देखा था। राइट? यहां पे ऑर्डर डॉट

11:47क्लास, यूजर डॉट क्लास, पेमेंट डॉट क्लास

11:49आपने इन सबको पहले कंपाइल किया और उसका

11:50पैकेज बनाया। हमेशा कंपाइल्ड कोड का पैकेज

11:53बनता है। तो ये तो ऑलरेडी कंपाइल है। यानी

11:55कि ये जो कंपाइलर ने कंपाइल किया होगा या

11:56सिर्फ आपके जावा कोड को कंपाइल किया होगा।

11:58तो जब आपका जावा कोड रन होने जाएगा जिसमें

12:01आपका खुद का भी कोड है और आपकी थर्ड

12:02पार्टी लाइब्रेरीज भी हैं। उस टाइम पे अगर

12:04आपका कोड यूज कर रहा है किसी थर्ड पार्टी

12:07लाइब्रेरी की कोई क्लास या उसका कोई मेथड

12:09तो कैसे पता चलता है हमारे जेवीएम को कि

12:10कौन से मेथड को कॉल करवाना है? राइट? तो

12:13यहां पे काम आता है हमारा क्लास पाथ। तो

12:15क्लास पाथ को आप एक स्पेशल प्लेस मान सकते

12:17हो जहां पे वो जावा की फाइल्स को सर्च

12:19करता है। तो सबसे पहले बेसिकली वो दिखेगा

12:21कि कोई भी क्लास क्या पहले आपके जावा कोड

12:23में प्रेजेंट है? अगर हां तो वो वहां से

12:25उसको यूज कर लेगा। अगर नहीं है तो वो इन

12:27चार फाइल्स के अंदर देखेगा इसके बाइट

12:29कोड्स के अंदर क्या वो वहां पे प्रेजेंट

12:30है। अगर वो वहां पे प्रेजेंट है तो वो

12:32वहां से उसको यूज़ कर लेगा। ठीक है? तो ये

12:34पूरा फ्लो होता है जब आप बेसिकली अपना कोड

12:36प्लस थर्ड पार्टी लाइब्रेरीज़ को यूज़ करते

12:38हो कंपाइल करके उसको रन करने के लिए। ठीक

12:40है? पर हमें तो मेवन को पढ़ना था और मेवेन

Introducing Maven

12:44को तो अभी तक हमने इंट्रोड्यूस ही नहीं

12:45किया कि मेवन एक्चुअली है क्या? क्या करता

12:47है वगैरह-वगैरह है ना? ठीक है? तो अब करते

12:50हैं अपने मेवन को इंट्रोड्यूस। ओके। तो आप

12:53इमेजिन करो कि आप खुद का कोई कोड लिख रहे

12:55हो। ठीक है? और आपको अपने कोड को ना

12:56डेटाबेस से कनेक्ट करना है। लेट्स से माय

12:58सीक्वल से। तो बेसिकली अगर आपको अपनी

13:00एप्लीकेशन को माय सीक्वल से कनेक्ट करना

13:02है ना तो सबसे पहले आपको चाहिए होगा एक

13:04कनेक्टर। अब कनेक्टर वो कौन सा होगा

13:05डिपेंड करता है आपका डेटाबेस कौन सा है।

13:07अगर पोस्ट ग्रेस है तो कोई और कनेक्टर

13:09चाहिए होगा। My सीक्वल है तो कोई और

13:10कनेक्टर चाहिए होगा। तो बेसिकली अगर मैं

13:12My सीक्वल से कनेक्ट कर रहा हूं तो मुझे

13:14चाहिए होगा एक माय सीक्वल कनेक्टर। तो

13:15बेसिकली मुझे ना Mys सीक्वल कनेक्टर के

13:17लिए एक जार फाइल डाउनलोड करनी पड़ेगी। तो

13:19मैं वो कैसे कर सकता हूं? अब एक तो बहुत

13:21सिंपल सा तरीका है कि बेसिकली मैं Google

13:23पे जाऊं और My सीक्वल कनेक्टर की जार फाइल

13:27को डाउनलोड कर लूं। जार फाइल डाउनलोड कुछ

13:29इस तरीके से। ओके? तो बेसिकली मैं ऐसे लिख

13:32सकता हूं my सीक्वल कनेक्टर jar डाउनलोड।

13:34मेरी सबसे पहले देखो my सीक्वल.com की ही

13:36वेबसाइट खुलेगी। उसके अंदर मैं गया और

13:38यहां पे देखो मुझे शो कर रहा है मेरा

13:39कनेक्टर। तो मैं चाहूं तो यहां से उसे

13:41डाउनलोड कर सकता हूं। 9.7.0 अपना ऑपरेटिंग

13:43सिस्टम चूज़ करूंगा और वहां से उसको

13:45डाउनलोड कर लूंगा। ठीक है? तो ये तो

13:46क्वाइट सिंपल है। पर आप सोचो कि क्या ये

13:49तरीका प्रैक्टिकल है? यहां पे तो मुझे एक

13:51ही जार डाउनलोड करनी थी तो मैंने

13:53डायरेक्टली उसको जाके डाउनलोड कर लिया। पर

13:54अगर आपको अपनी एप्लीकेशन में 100्स ऑफ जार

13:57फाइल्स चाहिए होगी जो कि आपको चाहिए होती

13:59हैं। अभी हम देखेंगे कैसे? राइट? बहुत

14:01सारी थर्ड पार्टी लाइब्रेरीज चाहिए होगी

14:03तो आप एक-एक करके उन्हें मैन्युअली

14:04डाउनलोड करोगे। राइट? दूसरा आप उनके

14:06वर्जनंस को कैसे मैनेज करोगे। अब देखो, जब

14:08आप स्प्रिंग फ्रेमवर्क के साथ काम करते हो

14:10ना, तो जनरली क्या होता आजकल हम यूज़ करते

14:12हैं स्प्रिंग सेवन को जो वर्क करता है

14:14स्प्रिंग बूट फोर के साथ। राइट? पर

14:17स्प्रिंग सिक्स को अगर आप यूज़ करोगे तो वो

14:18स्प्रिंग बूट 4 के साथ काम नहीं करेगा।

14:20राइट? तो ये वर्जन मिसमैच हो सकता है। तो

14:22हो सकता है आप स्प्रिंग सेवन की

14:23डिपेंडेंसी डाउनलोड कर लो। उसकी जार फाइल

14:25डाउनलोड कर लो। पर आप स्प्रिंग बूट थ्री

14:27की डिपेंडेंसी डाउनलोड करो। है ना? तो बीच

14:29में वर्जन मिसमैच हो जाएगा। तो आपको ये भी

14:31मैनेज करना पड़ेगा। ठीक है? तो बेसिकली एक

14:33तो बहुत सारा मैनुअल एफर्ट है। मैनुअल

14:36एफर्ट। यह तो आपने देख ही लिया। दूसरा

14:38वर्जनिंग मिसमैच हो सकती है।

14:41और वो आपको हैंडल करना पड़ेगा खुद के खुद

14:44से। राइट? तीसरा अगेन आप सोचो कि आपने एक

14:48डिपेंडेंसी डाउनलोड करी। फॉर एग्जांपल

14:49मैंने स्प्रिंग बूट फोर की डिपेंडेंसी

14:51डाउनलोड करी और ये फर्दर डिपेंड करती है

14:53अलग डिपेंडेंसीज पे। तो मुझे वो भी

14:55डाउनलोड करनी पड़ेगी। और अगेन मुझे उसके

14:57बारे में नॉलेज होनी चाहिए कि वो कौन सी

14:58डिपेंडेंसीज हैं। ठीक है? तो इसको मैं

15:00बोलता हूं ट्रांजिटिव डिपेंडेंसीज।

15:02ट्रांजिटिव डिपेंडेंसीज कि एक डिपेंडेंसी

15:04दूसरे पे डिपेंड करती है। तो मुझे वो सब

15:07भी डाउनलोड करनी पड़ेगी। तो बहुत सारे

15:09प्रॉब्लम्स हैं। अगर मैं मैनुअली इन सारी

15:11फाइल्स को डाउनलोड करने जाऊंगा। इनफैक्ट

15:13आप एक और चीज सोचो कि मैंने सारी

15:15डिपेंडेंसी डाउनलोड कर ली और मैं मेवन को

15:17यूज़ नहीं करता। मुझे नहीं पता मेवन क्या

15:18है। मैं उसको इंडिपेंडेंटली एक-एक करके

15:20डाउनलोड करता हूं और अपने कोड में उसको

15:22डाल देता हूं। ठीक है? तो जब मैं अपने कोड

15:24की जार फाइल बनाऊंगा और आपको पता है अगर

15:25मेरा वो जो कोड है वो लाइब्रेरी है राइट?

15:27ना कि एक एप्लीकेशन। तो जब मैं उसकी एक

15:29जार फाइल बनाऊंगा और अपने फ्रेंड को शेयर

15:31करूंगा तो मेरे फ्रेंड के पास कोई

15:33इंफॉर्मेशनेशन नहीं होगी कि मेरा खुद की

15:34जो एप्लीकेशन है वो कौन सी जार फाइल्स यूज़

15:36करती हैं। तो वहां पे अब मुझे क्या करना

15:38पड़ेगा? हो सकता है मुझे एक टेक्स्ट फाइल

15:40डालनी पड़े। उसमें अपनी सारी डिपेंडेंसीज

15:41को मैं लिस्ट करूंगा कि भाई अगर तेरे को

15:43मेरी लाइब्रेरी यूज़ करनी है तो ये सारी

15:44लाइब्रेरीज की लिस्ट है इन्हें डाउनलोड

15:46करी हो। फिर वो उन्हें डाउनलोड करेगा। अब

15:48मुझे नहीं पता उसने उसका कौन सा वर्जन

15:49डाउनलोड किया है। तो मुझे वहां पे और

15:51इनेशन देनी पड़ेगी। वर्जनिंग की इनफेशन कि

15:53एग्जैक्टली ये डाउनलोड करी हो। फिर उसको

15:55बहुत सारा मैनुअल एफर्ट करना पड़ेगा।

15:56राइट? तो बहुत सारी प्रॉब्लम्स यहां पे

15:58होती है। तो वहां पे आता है हमारा टूल

16:00मेविन। ठीक है? मेविन कहता है कि आपको ये

16:03कोई काम करने की जरूरत नहीं है। आप जब

16:04एप्लीकेशन लिखते हो या लाइब्रेरी लिखते हो

16:06तो आप अपने बिजनेस लॉजिक पे फोकस करो।

16:08अपने कोड पे फोकस करो। आप बस मुझे बता दो

16:11कि आपको कौन सी डिपेंडेंसी चाहिए और मैं

16:13खुद उसे डाउनलोड कर लूंगा। आपको मैनुअली

16:15जा के डाउनलोड करने की जरूरत नहीं है।

16:17इनफैक्ट अगर आपकी डिपेंडेंसी किसी और

16:19डिपेंडेंसी पे भी डिपेंड करती है। तो

16:21बेसिकली आपने लेट्स से स्प्रिंग बूट की

16:23डिपेंडेंसी डाली और वो फर्दर डिपेंड करती

16:25है मल्टीपल डिपेंडेंसीज पे। यानी कि

16:26ट्रांजिटिव डिपेंडेंसीज हैं तो मैं वो भी

16:29अपने आप डाउनलोड कर लूंगा। आपको वो बताने

16:31की भी जरूरत नहीं है। ठीक है? तो ये है

16:32मेवन का एक यूज़। मेवन के और बहुत सारे यूज़

16:35केसेस हैं। ठीक है? मेवन अभी मैं बताऊंगा

16:36एक्चुअली है क्या? पर आपको समझ आ गया होगा

16:38कि आपकी वो लाइफ कितनी आसान करने वाला है।

16:41ठीक है? ओके? तो मेवन को ना सबसे पहले हम

16:43डिफाइन करते हैं कि व्हाट इज़ मेन? तो अगर

16:45मैं मेवन को कम से कम शब्दों में

16:47एक्सप्रेस करना चाहूं ना तो मैं बोलूंगा

16:48मेवन है एक प्रोजेक्ट मैनेजमेंट टूल।

16:54टूल। ओके? क्या मतलब प्रोजेक्ट मैनेजमेंट

16:57टूल का? सिंपल सी बात है। ये आपके

16:59प्रोजेक्ट को मैनेज करता है। तो जब अपना

17:01कोड लिखते हो, एक एप्लीकेशन या लाइब्रेरी

17:03बनाते हो, मल्टीपल थर्ड पार्टी लाइब्रेरीज

17:04यूज़ करते हो, बहुत सारी कॉम्प्लिकेशंस

17:06होती हैं। मेवन कहता है मैं उन सारी

17:08कॉम्प्लिकेशंस को आपके लिए हैंडल कर

17:11लूंगा। तो अगर मैं आपको मोटा-मोटा बताऊं

17:13ना तो वो आपके लिए चार चीजें करता है। ठीक

17:14है? वो कौन सी चार चीजें हैं? देखो सबसे

17:16पहले वो आपके लिए मेंटेन करता है एक

17:19फोल्डर स्ट्रक्चर को। ठीक है? तो बेसिकली

17:21अभी हम वही देखेंगे। अभी हम इंटेलिजें पे

17:23जाकर के एक मेवन आर्किटेक्चर से खुद का एक

17:25कोड लिखेंगे तो आपको दिखेगा एक पर्टिकुलर

17:27फोल्डर स्ट्रक्चर वहां फॉलो हो रहा है। तो

17:29वो उसका एक स्टैंडर्ड फोल्डर स्ट्रक्चर है

17:31और वो कहता है कि मैं इसी को यूज़ करूंगा

17:33चेंज नहीं करूंगा। अब इससे फायदा ये होता

17:34है इमेजिन करो कि एक एप्लीकेशन पे मल्टीपल

17:37लोग काम कर रहे हैं एक टीम के अंदर। अगर

17:38सब अपना खुद का फोल्डर स्ट्रक्चर यूज़

17:40करेंगे तो कितनी चीजें कॉम्प्लिकेटेड हो

17:42जाएगी। किसी ने कोई मेन क्लास कहीं रखी

17:43हुई है। किसी ने कोई कोई कॉन्फ़िगरेशन

17:45क्लासेस कहीं और रखी हुई है। राइट? मेन

17:47कहता है नहीं एक फिक्स्ड फोल्डर स्ट्रक्चर

17:49रहेगा सबके लिए कॉमन। राइट? तो ये सबसे

17:51पहले तो लेके ला के देता है आपको एक

17:52फोल्डर स्ट्रक्चर। ये हेल्प करता है आपके

17:54जावा कोड को कंपाइल करने में। ठीक है? तो

17:56आप एक क्लिक से अपने पूरे जावा कोड को

17:58कंपाइल कर सकते हो। जितने भी क्लासेस हैं

18:00सबको एक एक बार के लिए कंपाइल कर देगा।

18:02ठीक है? तीसरा ये आपके लिए बनाएगा आपकी

18:05जार फाइल। तो आप अपने जावा कोड की जार

18:08फाइल भी बनवा सकते हो। इनफैक्ट कंपाइल

18:10करना, जार फाइल बनाना ये सब इसके एक लाइफ

18:12साइकिल का पार्ट है। ये इससे ज्यादा चीजें

18:14कर सकता है। अभी हम वो देखेंगे। इसमें

18:15बहुत सारे फ्रेजज़ आते हैं। क्लीन, कंपाइल,

18:18टेस्ट वगैरह-वगैरह। सो इसकी पूरी खुद में

18:20एक लाइफ साइकिल है। तो ये हमारे लिए

18:21फोल्डर स्ट्रक्चर बना सकता है। मोटा-मोटा

18:23हमारे कोड को कंपाइल भी कर सकता है। हमारे

18:25लिए जार फाइल भी बना सकता है हमारी खुद

18:26की। इनफैक्ट सिर्फ जार फाइल या कंपाइल

18:28करना नहीं मैंने अभी आपको बताया लाइफ

18:29साइकिल में और भी बहुत सारे काम कर सकता

18:31है। और ये कर सकता है आपके लिए

18:34डिपेंडेंसीज को डाउनलोड। डिपेंडेंसीज

18:36डाउनलोड। राइट? यानी कि दूसरी एक्सटर्नल

18:39जार फाइल्स को भी ये आपके लिए डाउनलोड कर

18:41सकता है। बहुत ईजीली। बहुत ही अमेजिंग टूल

18:44है आपकी लाइफ। बहुत आसान करने वाला है ये

18:45पूरे आपके आर्किटेक्चर में। ठीक है? ठीक

18:47है? तो एक बार ना इसको प्रैक्टिकली जा के

18:49देखते हैं। अब सबसे पहले आपको क्या करना

18:51है? आपको चाहिए होगा मेवन अपने सिस्टम के

18:53अंदर। उसके दो तरीके हैं। आप सबसे पहले

18:56जाओ मेवन डाउनलोड। ठीक है? आपको सबसे पहले

18:58Apache की वेबसाइट खुल जाएगी। Apache MV

18:59ये Apache का एक प्रोजेक्ट है और आप आ गए

19:01इसके होम पेज पे। यहां से आप चाहो तो इसको

19:03डाउनलोड कर सकते हो और अपने सिस्टम पे

19:05क्लास पाथ सेटअप करके इसको इंस्टॉल भी कर

19:07सकते हो। ठीक है? तो आप ये सब कर सकते हो।

19:10पर हमें ये सब करने की जरूरत नहीं है।

19:11इनफैक्ट आप कोई भी आईडी जो यूज करते हो

19:13जैसे हम इंटेलिजेंट यूज़ कर रहे हैं उसमें

19:15मेवन प्रीइस्टॉल्ड आता है। उसमें आप

19:17प्रोजेक्ट्स बना सकते हो जिसमें आप मेवन

19:18इंटरनली यूज़ कर सकते हो। उसके साथ काम कर

19:20सकते हो वगैरह-वगैरह। तो मैं क्या करता

19:21हूं? मैं डायरेक्टली चलता हूं अपने

Maven Project

19:23इंटेलिजेंट आईडिया पे। ठीक है? यहां पे

19:25मैं बनाने वाला हूं अपना खुद का एक न्यू

19:26प्रोजेक्ट। तो मैंने यहां पे क्लिक किया

19:27न्यू प्रोजेक्ट। इसको एक बार कर देते हैं

19:30थोड़ा सा बड़ा। तो सबसे पहले मुझे अपना नाम

19:32डालना है प्रोजेक्ट का। तो मैं डालता हूं

19:34लेट्स से मेव एंड डेमो। ठीक है? ओके। यहां

19:36पे आप अपनी लोकेशन सेलेक्ट कर सकते हो।

19:38मेरी यहां पे इंटेलिजेंट प्रोजेक्ट्स

19:39ऑलरेडी सेक्टेड है। आप खुद का कोई फोल्डर

19:41बना सकते हो। और देखो यहां पे मुझसे वो

19:43चूज़ करने को बोल रहा है बिल्ड सिस्टम। तो

19:45मेरे पास तीन ऑप्शन है। या तो मैं इंटेलिज

19:47का इनबिल्ट बिल्ड सिस्टम यूज़ करूं या मैं

19:49मेवन यूज़ करूं या मैं ग्रेडल यूज़ करूं।

19:51अगेन हम यहां पे मेवन यूज़ करने वाले हैं।

19:53अब आप सोचो अगर मैं इंटेलिज का इनबिल्ट

19:55बिल्ड सिस्टम यूज़ करता तो क्या प्रॉब्लम

19:57होती कि मैं तो इंटेलिजें का यूज़ कर लेता।

19:59लेकिन मेरी ही टीम में कोई और बंदा जो काम

20:01कर रहा है। हो सकता है वो मेवन यूज़ करे।

20:02कोई तीसरा बंदा ग्रेडर यूज़ करे। है ना? तो

20:04सबका फोल्डर स्ट्रक्चर और सबके बिल्ड

20:06सिस्टम्स बहुत अलग हो जाएंगे। बिल्ड

20:07सिस्टम का एग्जैक्ट मतलब क्या होता है?

20:09बिल्ड सिस्टम मेवन का तो बस एक पार्ट है

20:10कि आपके कोड को बिल्ड कैसे करना है?

20:12कंपाइल कैसे करना है? उसे पैकेज कैसे करना

20:14है? ये सब चीजें है ना? उसका फोल्डर

20:16स्ट्रक्चर भी वैरी करता। डिपेंडेंसीज कैसे

20:18डाउनलोड होती है वो सब भी वैरी करती। अगर

20:19आप इनमें से कुछ और चूज़ करते। है ना? तो

20:22हमने स्टैंडर्ड बनाने के लिए लेट से चूज़

20:24किया मेवन। ताकि मेरी टीम में बाकी लोग

20:26कोई भी आईडी यूज़ कर रहे हो। चाहे जैसे मैं

20:27इंटेलिजेंस कर रहा हूं। कोई हो सकता है

20:29एक्लिप्स को यूज़ कर रहा हूं। Knet BBS यूज़

20:31कर रहा हूं वगैरह वगैरह। उससे कोई फर्क

20:32नहीं पड़ेगा। सबका बिल्ड सिस्टम मेवन रहने

20:34वाला है। अब यहां पे मुझे चूज़ करना है

20:35अपने जावा का वर्जन। यहां पे अभी JD के 23

20:38सिलेक्टेड है। तो मैं 23 ही रहने देता

20:39हूं। ठीक है? यहां पे ऐड सैंपल कोड को

20:42मैंने टिक किया हुआ है कि ठीक है कोई

20:43सैंपल कोड मेरे पास आ जाएगा। और अगर मैं

20:45जाऊं एडवांस सेटिंग्स में तो वो मुझसे दो

20:46चीजें पूछता है। एक तो ग्रुप आईडी और एक

20:48आर्टिफेक्ट आईडी। अभी के लिए देखो ग्रुप

20:50आईडी में पड़ा है ऑर्ग डॉट एग्जांपल और

20:52आर्टिफेक्ट में पड़ा है मेवन डेमो। इसको

20:53मैं अभी के लिए ऐसे ही रहने देता हूं। कोई

20:54दिक्कत नहीं है। और मैं यहां पे करता हूं

20:56अपना प्रोजेक्ट क्रिएट। तो आप देखो जैसे

20:58ही मेरा प्रोजेक्ट क्रिएट होगा मुझे एक

21:00हायरार्की मिल जाएगी। मुझे एक प्रोजेक्ट

21:02स्ट्रक्चर मिल जाएगा। तो अभी के लिए ना

21:03मैं इस प्रोजेक्ट स्ट्रक्चर को कर देता

21:05हूं कोलैप्स। ठीक है? सब कुछ कोलैप्स। और

21:06यहां पे आप देख रहे हो मेरे पास कोई मेन

21:08फंक्शन भी है। उसको हम बाद में देखते हैं।

21:09इनफैक्ट ये जो ऑलरेडी इसने मेरे को कोड

21:11जनरेट किया है इसको मैं अभी डिलीट कर देता

21:13हूं। ठीक है? तो मेरे पास बिल्कुल क्लीन

21:14है। मेरे पास मेन फंक्शन है और मेन क्लास

21:16है। ओके? अब ना एक बार हम मेवन के फोल्डर

Maven Folder Strucutre

21:19स्ट्रक्चर को देखते हैं। तो देखो हमारे

21:21प्रोजेक्ट का नाम था मेवन डेमो। ठीक है?

21:23उसके अलावा यहां पे एक एक्सटर्नल

21:24लाइब्रेरीज हैं। इनफैक्ट यहां पे पता है

21:26क्या होने वाला है? यहां पे जो भी आप

21:28एक्सटर्नल लाइब्रेरी डाउनलोड करोगे जार

21:29फाइल्स डाउनलोड करोगे वो यहां पे आएगी। तो

21:31अभी यहां पे सिर्फ एक ही है ओपन jdk 23

21:33आपकी जावा 23 की जो एक्सटर्नल लाइब्रेरी

21:35है वो यहां पे है। अगर आप इसको खोलोगे तो

21:37जावा 23 अंदर से कौन सी लाइब्रेरीज यूज़

21:39करती है वो सब यहां पे आ जाएगा। ओके तो ये

21:41है आपका एक्सटर्नल लाइब्रेरीज। इसको आप

21:43बंद कर सकते हो। और इसके अलावा ये तो एक

21:45इंटरनल फोल्डर है। इसको आप छोड़ सकते हो।

21:46अगर हम मेवन डेमो के अंदर जाएं तो आपको

21:49मिलेगा मेनली एक सोर्स फाइल और एक पोम डॉट

21:51एक्सML फाइल। इसके अलावा ये तो आपको पता

21:53है गेट इग्नोर है ये एमवीएन ये मेबिन की

21:55इंटरनल फाइल है ये आईडिया इंटेलिजेंट

21:56इंटरनल फाइल है हमें इन सब से मतलब नहीं

21:58है हमें बस दो फाइल से मतलब है एक तो दो

22:00एक तो पैकेज है sआरसी और एक फाइल है pm

22:02डॉटexml ये जो pm डॉट एक्सML फाइल है ना

22:05ये बहुत जरूरी फाइल है मेवन के लिए सबसे

22:07जरूरी फाइल है pmxl ठीक है इसकी फुल फॉर्म

22:10होती है प्रोजेक्ट ऑब्जेक्ट मॉडल एक्सml

22:12अब इसके बारे में हम डेप्थ में समझेंगे

22:13क्या है ठीक है पर अभी के लिए मैं चलता

22:16हूं अपनी एसआरसी सोर्स फाइल के अंदर तो अब

22:18देखो इसने इसके अंदर क्या फोल्डर

22:19स्ट्रक्चर बनाया है इसके अंदर इसने दो चीज

22:21रखी हुई है एक मेन और एक टेस्ट। ठीक है?

22:23अब आप ध्यान से समझो। सबसे पहले सोर्स का

22:26मतलब क्या होता है? सोर्स का मतलब मेरा जो

22:27भी एप्लीकेशन है जो मैं बिल्ड करने वाला

22:29हूं वो इस सोर्स के अंदर रहने वाली है।

22:31राइट? अब उस सोर्स को अगर मैं ओपन करूंगा

22:32तो मेरे पास दो चीजें आएंगी। एक मेन कोड

22:34और एक टेस्ट कोड। तो मेन का मतलब जो भी

22:36मैं एप्लीकेशन में अपनी क्लासेस लिखूंगा

22:38वो सब आएंगी मेरी मेन के अंदर। और उसके जो

22:40टेस्ट केसेस अगर मैं लिखना चाहूंगा तो वो

22:42सब आएंगे मेरे टेस्ट के अंदर। राइट? तो

22:44आपको पता है आप अपनी स्प्रिंग बूट

22:45एप्लीकेशन को या जावा की किसी भी

22:46एप्लीकेशन के टेस्ट केसेस भी लिख सकते हो

22:48जिसको हम यूनिट टेस्ट कहते हैं। उसके लिए

22:49बहुत सारी लाइब्रेरीज हैं। मॉकेटो है, जे

22:51यूनिट है जिनको हम यूज़ कर सकते हैं जो कि

22:53हम करेंगे अभी इस सीरीज में यूज़। ठीक है?

22:55तो अगर मुझे अपने कुछ टेस्ट केसेस लिखने

22:57हैं तो वो मैं यहां पे लिख सकता हूं। तो

22:58बेसिकली मेरा रियल एप्लीकेशन कोड जो मेरा

23:00बिज़नेस लॉजिक है वो जाएगा मेन के अंदर।

23:02अगर मैं मेन को फर्दर ओपन करता हूं तो

23:04मुझे फिर दो फोल्डर मिलते हैं। एक java और

23:06एक रिसोर्सेज। अब यहां पे जावा का मतलब

23:08जितनी भी मेरी डॉट जावा फाइल्स होंगी

23:10एक्चुअल जावा कोड होगा। जैसे डेमो डॉट jवा

23:12मेन डॉट जावा या खुद का मैं जो भी जावा

23:14फाइल्स लिखूंगा वो सब मेरी यहां पे आएंगी

23:16और एक रिसोर्सेज की देखो डायरेक्टरी बनी

23:18हुई है। जितनी भी मेरी नॉन जावा फाइल्स

23:20हैं लेट से मेरी कोई टेक्स्ट फाइल, मेरी

23:22कोई स्टैटिक इमेजज़, मेरी कोई प्रॉपर्टीज

23:24राइट? वो सब आएंगी मेरी इस रिसोर्स फाइल

23:27के अंदर। अब इंटरेस्टिंगली अगर मैं इस

23:28जावा फोल्डर को अंदर से खोलता हूं। यहां

23:30पे मेरा फोल्डर स्ट्रक्चर कैसा हो जाता

23:32है? आपने याद है हमने इसने हमसे दो चीजें

23:35पूछी थी। ग्रुप आईडी डॉट आर्टिफेक्ट आई थी

23:37जो हमने नीचे एडवांस सेटिंग्स में चूज़

23:38किया था। और हमने इसको ऐसे ही रहने देता।

23:40हमारी ग्रुप आईडी थी ऑर्ग डॉट एग्जांपल और

23:42आर्टिफेक्ट आईडी थी हमारी मेवन डेमो। इसने

23:45देखो ग्रुप आईडी का एक फोल्डर स्ट्रक्चर

23:47बना दिया। जावा के अंदर ऑर्ग डॉट एग्जांपल

23:49है। अब यहां पे ना डॉट से कंफ्यूज मत

23:51होना। यहां पे डॉट का मतलब होता है तो

23:53सबसे पहले जावा के अंदर फोल्डर है ऑर्ग और

23:55उस ऑर्ग के अंदर एक और फोल्डर है

23:56एग्जांपल। अब क्योंकि ऑर्ग के अंदर अभी एक

23:59ही फोल्डर है एग्जांपल इसलिए उसने उसको

24:01ऑर्ग डॉट एग्जांपल कर दिया। राइट? पर ये

24:03दोनों अलग-अलग फोल्डर हैं। इसको प्रूफ

24:05करने के लिए मैं क्या करता हूं? ऑर्ग के

24:06अंदर एक और फोल्डर बना के दिखाता हूं

24:07आपको। तो लेट्स से मैंने यहां पे किया

24:08न्यू पैकेज और मैं ऑर्ग के अंदर लेट्स से

24:12एग्जांपल टू करके एक फोल्डर बनाता हूं। तो

24:15अब देखो ये दोनों अलग-अलग हो गए। एक ऑर्ग

24:16है उसके अंदर दो फोल्डर हैं। एग्जांपल और

24:18एग्जांपल टू। ठीक है? तो इसको मैं फिर से

24:20डिलीट कर देता हूं। मुझे इसकी जरूरत नहीं

24:21है। डिलीट। ठीक है? तो ऑर्ग डॉट एग्जांपल

24:25को जब आप खोलोगे उसके अंदर है आपका मेन

24:28कोड। राइट? इनफैक्ट मैं जितनी भी अपनी खुद

24:31की जावा फाइल बनाऊंगा मैं इस ऑर्ग डॉट

24:33एग्जांपल के अंदर ही बना रहा हऊंगा। तो

24:35मैं चाहूं तो इसके अंदर अपनी खुद की एक और

24:37जावा फाइल बना सकता हूं। लेट्स से मैं

24:39लिखता हूं डेमो ये डॉट जावा इसको अपने आप

24:41लगा देगा। डेमो डॉट jवा ठीक है? एक और

24:43फाइल बन गई। मैं यहां पे एक और फाइल बना

24:45सकता हूं। लेट्स से मैं लिखता हूं डेमो

24:46टू। ठीक है? तो यहां पे मेरी डेमो 2 डॉट

24:48jवा एक और फाइल बन गई। तो मैं सारी अपनी

24:50जावा फाइल्स यहां पे लिखने वाला हूं। और

24:52मेरी मेन फाइल ये रही। ठीक है? अब इसके

24:55अंदर मैं अपने खुद के फोल्डर बना सकता

24:56हूं। लेट्स से पहले मैं एक पैकेज बनाऊं और

24:58डॉट एग्जांपल डॉट लेट्स से मैं एक नाम

25:01रखता हूं कंट्रोलर। इनफैक्ट हम स्प्रिंग

25:03बूट में कंट्रोलर एक डायरेक्टरी जरूर

25:05बनाते हैं। वो हम देखेंगे क्यों बनाते

25:06हैं। और इसके अंदर जाकर के मैं अपना एक

25:09फाइल बना सकता हूं। लेट्स से हेलो

25:10कंट्रोलर जिन्होंने मेरी लास्ट वीडियो

25:12देखी होगी उनको पता होगा हम यहां पे क्या

25:14कर रहे हैं। ठीक है? कुछ इस तरीके से। तो

25:16ये सब फोल्डर स्ट्रक्चर वो मेरे को बना के

25:18देता है। इसके अंदर मैं अपनी खुद की जावा

25:20की फाइल्स बना सकता हूं। ठीक है? अभी के

25:22लिए मैंने रैंडमली बनाए थे। इसकी कोई

25:23जरूरत नहीं है। यहां पे ये ये मुझे जाना

25:25है अपने मेन कोड के अंदर। ठीक है? ये उसने

25:27मेरे को प्रीजनरेट करके दिया था। तो अगर

25:29मैं उस पे टिक नहीं करता ना कि सैंपल कोड

25:31जनरेट करना तो वो मेरी ये मेन फाइल भी

25:33जनरेट नहीं करता। मुझे खुद से बनानी

25:34पड़ती। तो मैंने उसको बोल दिया कि तू मुझे

25:36प्रीजनरेट करके दे दे। ओके? अब ना ये तो

25:39हो गया हमारा पूरा का पूरा मेन का

25:40स्ट्रक्चर। यहां पे देखो एक और फोल्डर है

25:42टेस्ट। मैंने क्या कहा था? जितने भी हमारे

25:44टेस्ट केसेस होंगे वो इस टेस्ट फोल्डर में

25:46जाएंगे। तो अगर मैं इसको दोबारा ओपन करूं

25:47हां तो ये मेरी सारी फाइल्स थी मेन के

25:49अंदर। और मैं टेस्ट को खोलूंगा तो ये यहां

25:51पे अगेन मेरे पास एक फोल्डर आता है जावा।

25:53तो देखो बिल्कुल यहां पे भी जावा फोल्डर

25:54है। यहां पे भी जावा फोल्डर है। और ये

25:56फोल्डर है मेरा पूरा खाली। अब मैं आपको

25:58बताता हूं कि जब आप अभी यहां पे तो कोई

26:00टेस्ट फाइल है ही नहीं। राइट? पर जब आप

26:02खुद की कोई टेस्ट फाइल इंट्रोड्यूस करोगे

26:03तो वो कैसे आएगी? तो जब आप टेस्ट फाइल

26:05इंट्रोड्यूस करोगे ना उसका फोल्डर

26:07स्ट्रक्चर भी बिल्कुल सेम रहने वाला है जो

26:08इसका रहेगा। राइट? अभी तो यहां पे खाली

26:10है। कोई टेस्ट फाइल नहीं है और मेबेन ने

26:12खाली प्रोजेक्ट बनाया तो यहां पे हमने

26:13उसको तो उसने हमें ऐसे ला के दे दिया। पर

26:16याद करो लास्ट लेक्चर में जब हमने एक

26:17स्प्रिंग बूट एप्लीकेशन को डाउनलोड किया

26:19था स्प्रिंग इनिशलाइजर पे जाके। उसने ना

26:21हमें एक पैकेज दिया था जिसमें हमारी टेस्ट

26:23फाइल भी थी। राइट? तो एक काम करते हैं।

26:25अपनी ना लास्ट एप्लीकेशन भी साइड बाय साइड

26:27खोल लेते हैं जो हमने लास्ट क्लास में

26:29बनाई थी। और उसकी डायरेक्टरी देखते हैं

26:31कैसे होती है। अगर आपने लास्ट क्लास अटेंड

26:33नहीं की थी या वो फाइल आपके पास नहीं है

26:34तो आपको कुछ नहीं करना। आपको जाना है एक

26:36स्प्रिंग इनिशलाइजर वेबसाइट पे। यहां पे

26:38आप इसके अंदर गए और आपको क्रिएट करना है

26:40अपना फोल्डर स्ट्रक्चर। ठीक है? तो मैं

26:42आपको फटाफट बताता हूं। आपको प्रोजेक्ट में

26:43चूज़ करना है मेवन लैंग्वेज में जावा।

26:45स्प्रिंग बूट का कोई भी वर्जन यूज़ कर

26:47लेना। ठीक है? जब मैंने लास्ट यूज़ किया था

26:494 आई गेस 0.6 था शायद है ना? तो वो वर्जन

26:52यहां पे अब है नहीं। 0.7 है या 1.0 है।

26:54कोई भी चूज़ करना बट फोर वर्जन ही यूज़

26:56करना। ठीक है? स्नैपशॉट्स यूज़ मत करना

26:58क्योंकि ये अभी वर्क इन प्रोग्रेस है। ठीक

26:59है? इसमें कुछ बग्स हो सकते हैं। तो आप या

27:01तो 4.0.7 या ये यूज़ कर सकते हो। और जब तक

27:04हो सकता है आप ये वीडियो देखो नए वर्जनंस

27:05आ गए हो। तो आप फोर के वर्जन में यूज़ करना

27:07क्योंकि हम स्प्रिंग बूट 4 यूज़ करना चाहते

27:09हैं। इन सबको ऐसे ही रहने देना। कॉम डॉट

27:10एग्जांपल, डेमो ये सब। और पैकेजिंग में हम

27:12चूज़ करेंगे जार। कॉन्फ़िगरेशन में

27:14प्रॉपर्टीज और java का कोई भी वर्जन आप

27:16चूज़ कर सकते हो। मैंने यहां पे 21 चूज़

27:18किया हुआ है। ठीक है? और फिर आपको एक

27:19डिपेंडेंसी ऐड करनी है। लेट्स से उसका नाम

27:22है स्प्रिंग वेब। स्प्रिंग वेब ये वाली।

27:24ठीक है? यहां से ऐड डिपेंडेंसी। और उसके

27:26बाद आपको करना है जनरेट। अगर आपको समझना

27:28है इन सबका मतलब क्या है? तो आप लास्ट

27:29वीडियो जा के देख सकते हो। ठीक है? और

27:31फाइनली जब आप करोगे जनरेट आपको एक ज़िप

27:33फाइल मिलेगी। उस ज़िप फाइल को आपको अनज़िप

27:35करना है और अपने इंटेलिजें पे जाके उसको

27:37ओपन करना है। ठीक है? तो जब आप उसे ओपन

27:39करोगे, आपका कुछ ऐसे फोल्डर स्ट्रक्चर खुल

27:41जाएगा। अब यहां पे तो मैंने यह खोला हुआ

27:42है जो मैंने लास्ट लेक्चर में यूज़ किया

27:44था। ठीक है? आपका फोल्डर स्ट्रक्चर

27:45ऑलमोस्ट सिमिलर दिखेगा। उसमें कुछ चीजें

27:47नहीं होंगी वो मैं अभी आपको बता दूंगा। तो

27:48देखो यहां पे अपना फोल्डर स्ट्रक्चर खोलूं

27:50तो डॉट आईडिया इसको हम इग्नोर कर सकते

27:52हैं। एमवीएन को इग्नोर कर सकते हैं। अगेन

27:54हमारे पास सोर्स फाइल है। ये सब इंटरनल

27:55फोल्डर्स हैं। हमारे पास अगेन सोर्स फाइल

27:57है। एक देखो आपको मिलेगी टारगेट फाइल। ये

27:59हमारी यहां पे नहीं थी। हमारे पास यहां पे

28:01सोर्स थी और सीधा pम xml थी। ठीक है? यहां

28:04पे टारगेट है और फिर फाइनली एक pmxl है।

28:06अगेन इन सब फाइल को आप इग्नोर कर सकते हो।

28:08तो गेट इग्नोर है। ये हेल्प डॉट है

28:09वगैरह-वगैरह। तो देखो यहां पे मुझे एक

28:11टारगेट फोल्डर एक्स्ट्रा मिल रहा है। ये

28:13क्या है? तो आपको शॉर्ट में बता दूं। हमने

28:15क्या किया था? लास्ट क्लास में अपना खुद

28:17का एक फाइल लिखी थी। अगर मैं यहां पे मेन

28:19के अंदर जाऊं जावा के अंदर तो देखो मैंने

28:21यहां पे डेमो एप्लीकेशन ये तो मेरे को

28:23स्प्रिंग बूट में दिया था और मैंने यहां

28:24पे खुद का हेलो कंट्रोलर लिखा था। जिन

28:26लोगों ने अभी डाउनलोड किया है प्रोजेक्ट

28:27उनके पास ये नहीं होगा। कोई बात नहीं। मैं

28:29क्या करता हूं? सबसे पहले इस टारगेट को

28:30यहां से रिमूव कर देता हूं। तो मैं यहां

28:32पे इसको क्लीन कर रहा हूं। अभी बताऊंगा ये

28:34क्या हो रहा है। ठीक है? अभी समझने की

28:35जरूरत नहीं है। ठीक है? तो यहां मेरा

28:37टारगेट फोल्डर रिमूव हो गया। अब हमारा

28:38फोल्डर स्ट्रक्चर ऑलमोस्ट सिमिलर दिख रहा

28:40होगा। अब अगेन हम अपनी स्प्रिंगboot

28:41एप्लीकेशन का फोल्डर स्ट्रक्चर देखेंगे ना

28:43तो सोर्स के अंदर मेन है जैसे यहां पर था

28:45उसके अंदर जावा है उसके अंदर है हमारा

28:47ग्रुप आईडी का नाम कॉम डॉट एग्जांपल जो

28:50आपने यहां से चूज़ किया था देखो ग्रुप आईडी

28:52कॉम डॉट एग्जांपल उसके अंदर है डेमो कॉम

28:55डॉट एग्जांपल डॉट डेमो डेमो था आपका

28:57आर्टिफेक्ट आईडी का नाम राइट तो फोल्डर

28:59स्ट्रक्चर ऐसा कि कॉम के अंदर है एग्जांपल

29:01एग्जांपल के अंदर है डेमो अब क्योंकि सबके

29:03अंदर एक-एक फोल्डर है इसलिए उसने डॉट यूज़

29:04किया हुआ है जैसे ही आप एक और फोल्डर

29:06डालोगे उसको वो अलग-अलग फोल्डर में

29:07डिस्ट्रीब्यूट कर देगा और उसके अंदर हमारी

29:09हमारी जावा फाइल्स हैं डेमो एप्लीकेशन ये

29:12हमें स्प्रिंग बूट ने अपने आप बना के दी

29:13है और ये हमने खुद से लिखा था हेलो

29:15कंट्रोलर ठीक है इसको आप इग्नोर कर सकते

29:17हो और इसके अलावा देखो मैंने क्या कहा था

29:19रिसोर्स फोल्डर है यहां पे तो हमारा सोर्स

29:21मेन java के अंदर रिसोर्स फोल्डर खाली

29:24पड़ा हुआ था क्योंकि मेवन का खाली

29:26प्रोजेक्ट था पर क्योंकि ये स्प्रिंग बूट

29:27का स्टार्टर प्रोजेक्ट है तो जो सब

29:29कॉन्फ़िगरेशंस हमें चाहिए वो स्प्रिंग बूट

29:31ने ऑलरेडी दे रखी हैं। तो अगर आप

29:32रिसोर्सेज को ओपन करोगे तो देखो इसने हमें

29:34दो फोल्डर बना के दे रखे हैं स्टैटिक

29:36टेंपल्लेट्स। तो अगर आपका कोई टेंप्लेट्स

29:37आप यहां डाल सकते हो। कोई स्टैटिक रिसोर्स

29:39है, कोई इमेज वगैरह आप यहां डाल सकते हो।

29:40और इसने आपको दी है एक प्रॉपर्टी फाइल

29:42एप्लीकेशन डॉट प्रॉपर्टीज़। अगर आपको याद

29:45होगा तो हमने यहीं पे पोर्ट नंबर भी चेंज

29:47किया था। राइट? तो ये आपकी रिसोर्सेज हो

29:49गई। और अगेन यहां पे है आपकी टेस्ट का

29:51फोल्डर। राइट? अब देखो यहां पे तो टेस्ट

29:53का फोल्डर के अंदर सिर्फ जावा था और वो

29:55खाली पड़ा हुआ था। लेकिन स्प्रिंगboot ने

29:57हमें जावा के अंदर हायरार्की बना के दी

29:58हुई है। java के अंदर अगेन कॉम ड.example

30:00डॉट डेमो। देखो बिल्कुल सेम कॉम.

30:02डॉ.example. डेमो उसके अंदर डेमो

30:04एप्लीकेशन टेस्ट। तो बेसिकली ये जो हमारा

30:06मेन एप्लीकेशन थी ना उसकी टेस्ट फाइल लिखी

30:08हुई है यहां पे। राइट? तो कहने का मतलब आप

30:10जो भी यहां पे कोड लिखने वाले हो, खुद की

30:12जावा फाइल लिखने वाले हो उसके टेस्ट फाइल

30:14आप लिखोगे यहां पे और उसका भी फोल्डर

30:16स्ट्रक्चर सेम मेंटेन करोगे। यानी कि अगर

30:18मुझे अपने हेलो कंट्रोलर की टेस्ट फाइल

30:19लिखनी है तो बेसिकली उसको मैं लिखूंगा

30:21यहां पे इसके अंदर हेलो क्लास और लेट्स से

30:24मैं लिखता हूं हेलो

30:27कंट्रोलर

30:28टेस्ट। कुछ इस तरीके से देखो हेलो

30:31कंट्रोलर टेस्ट। तो ये कौन सी टेस्ट फाइल

30:33हो गई मेरी? हेलो कंट्रोलर की। अब टेस्ट

30:34फाइल्स कैसे लिखते हैं वो बाद की बात है।

30:36ठीक है? पर आई होप आपको फोल्डर स्ट्रक्चर

30:38समझ आ गया होगा। अब इंटरेस्टिंगली मैंने

30:40कहा था कि यहां पे ना मेरा एक टारगेट

30:42फोल्डर आ रहा था। राइट? जो मेरे स्प्रिंग

30:44बूट एप्लीकेशन में आ रहा था और वो उन्हीं

30:46बच्चों को आ रहा होगा जिन्होंने लास्ट

30:47क्लास में मेरे साथ काम किया था। ठीक है?

30:49अगर आपने नया किया है तो आपको यहां पे

30:50नहीं आ रहा होगा। कोई बात नहीं। उसको हम

30:52अभी वापस लेके आते हैं और मैं बताता हूं

30:53वो क्या है। सबसे पहले अपने मेव एंड डेमो

30:55पे वापस जाते हैं। ठीक है? यहां पे टारगेट

30:57फोल्डर लेके आते हैं। तो लेट्स से मैं

30:59यहां पे कुछ कोड लिखता हूं। ठीक है? तो

31:00लेट्स से अभी के लिए सिंपल मैं यहां पे

31:02हेलो

31:04वर्ल्ड प्रिंट करना चाहता हूं। तो मैंने

31:06यहां पर हेलो वर्ल्ड प्रिंट किया। और आपको

31:07पता है अगर मैं इसको रन करूंगा तो स्क्रीन

31:09पे हेलो वर्ल्ड आ जाएगा। पर रन करने का

31:10मतलब क्या होता है? जैसे ही मैं ये बटन

31:12प्रेस करूंगा आपको पता है अंदर से क्या

31:13होगा? अंदर से मेरा कोड कंपाइल होगा। उसके

31:16बाद वो रन होगा। राइट? तो जैसे ही मेरा

31:18कोड कंपाइल हो के रन होता है। कंपाइलेशन

31:20करने का काम किसका है? क्योंकि मैंने यहां

31:22पे मेवन चूज़ किया हुआ है। मेरा मेवन का

31:23प्रोजेक्ट है। तो मेरे जावा के कोड को

31:25कंपाइल करने का काम होगा मेवन का। राइट?

31:27यानी कि मेवन मेरी सारी चीजें हैंडल करने

31:29वाला है। मेरे कोड को कंपाइल करना, उसको

31:30पैकेज करना, जार फाइल बनाना वगैरह-वगैरह।

31:32वो सब हम देखेंगे अभी मेवन के लाइव साइकिल

31:34में। इनफैक्ट अगर आप यहां पे देखोगे ना

31:36आपको मेवन का आइकॉन शो हो रहा होगा। ठीक

31:38है? आप यहां पे क्लिक करो। अगर यहां पे

31:40आपको नहीं हो रहा है आप सेटिंग्स में जाकर

31:41के यहां पे मेवन को मेवन का आइकॉन ऑन कर

31:43सकते हो। एक बार आपने मेवन को क्लिक किया

31:45ना देखो यहां पे आपको दिखेगा मेवन डेमो जो

31:47हमारा फोल्डर है। ठीक है? उसके अंदर आप

31:49जाओ और आपको मल्टीपल चीजें मिलेंगी। मेवन

31:51की लाइफ साइकिल, कुछ प्लगइंस और

31:52रेपोजिटरीज। अभी लाइफ साइकिल के अंदर आप

31:54जाओगे ना देखो आपको मल्टीपल फसेस मिलेंगे।

31:56क्लीन, वैलिडेट, कंपाइल, टेस्ट। ये सब

31:58क्या है वो भी हम आगे देखेंगे। पर लेट्स

31:59से आप यहां पे क्लिक करते हो कंपाइल पे।

Compiling code & Target folder

32:01जैसे आप क्लिक करोगे ना आपका जावा का कोड

32:03कंपाइल हो जाएगा और जो भी इसकी कंपाइल्ड

32:06फाइल्स हैं वो यहां पे एक स्पेशल फोल्डर

32:08टारगेट के अंदर आ जाएंगी। तो या तो मैं

32:10यहां पे कंपाइल क्लिक कर सकता हूं या तो

32:12यहां से मैं डायरेक्टली उस कोड को रन कर

32:13सकता हूं। तो पहले मैं यहां पे कंपाइल

32:15करके दिखाता हूं। देखो मैंने जैसे ही

32:16कंपाइल पे क्लिक किया ये देखो मेरा कोड

32:18कंपाइल हो रहा है और मेरा बिल्ड सक्सेस

32:19मेरा कोड कंपाइल हो गया। तो मेरा बाइट कोड

32:21बन गया होगा। अब वो कहां बना है? आप नीचे

32:23देखो। ये देखो मेरा अपने आप एक टारगेट

32:25फोल्डर बन गया। अब मैं इस टारगेट फोल्डर

32:27को अगर ओपन करूं टारगेट को तो देखो मेरे

32:29पास यहां पे मल्टीपल फोल्डर हैं। क्लासेस,

32:31जनरेटेड, सोर्सेस, मेव एंड स्टेटस। अब मैं

32:32क्लासेस के अंदर जाऊंगा तो देखो मेरे पास

32:34सेम फोल्डर स्ट्रक्चर आ जाएगा। ऑर्क के

32:36अंदर है एग्जांपल। ऑर्क के अंदर है

32:37एग्जांपल। उसके अंदर है कंट्रोलर, उसके

32:39अंदर है कंट्रोलर। डॉट एग्जांपल के अंदर

32:41मेरे तीन फाइल्स हैं। डेमो, डेमो डोमेन,

32:43डेमो, डेमो डोमेन। उन तीनों फाइल का यहां

32:45पे उसने कंपाइल्ड कोड लिख दिया। ठीक है?

32:47अगर मैं आपको दिखाऊं इसमें से कोई फाइल

32:49लेट से मेन खोलते हैं तो यहां पे देखो मेन

32:51डॉट क्लास फाइल खुलेगी नॉट मेन डॉट जावा

32:53क्योंकि ये बाइट कोड है पर यहां पे तो

32:54हमें नॉर्मल कोड दिख रहा है अगेन इसके

32:56बारे में हमने जावा में बात की थी कि आपका

32:57जो आईडी है हमारी जो कोई भी आईडी है वो

32:59क्या करती है बाइट कोड को वापस से कन्वर्ट

33:00कर लेती है किसमें मेन सोर्स में सोर्स

33:02कोड के अंदर ठीक है तो वो आप इग्नोर कर

33:04सकते हो पर देखो यहां पे मेन डॉट क्लास

33:05अगर मैं कोई और फाइल खोलूंगा तो देखो डेमो

33:07डॉट क्लास ये सब आपके बाइट कोड्स हैं। ठीक

33:10है? तो मेवन को बाइट कोड रखने का भी एक

33:12प्रॉपर तरीका पता है कि मैं फोल्डर

33:14स्ट्रक्चर सेम बनाऊंगा। जैसे मैंने यहां

33:15बनाया था और उनके बाइट कोड एज इट इज

33:18रखूंगा। जैसे डेमो का बाइट कोड यहां पे

33:19डेमो टू मेन। ठीक है? सेम फोल्डर

33:21स्ट्रक्चर और सेम हरार्की के अंदर। ठीक

33:23है? तो ये हमने किया था कंपाइल और हमारा

33:25ये फोल्डर क्रिएट हो गया था। इनफैक्ट अगर

33:27आप इस फोल्डर को डिलीट भी कर दोगे यहां पे

33:28मैंने इसको कर दिया डिलीट। ठीक है? तो

33:30इसको दोबारा लाने का एक सिंपल तरीका है।

33:32आप दोबारा अपना कंपाइल कर लो। या फिर आप

33:34अपना कोड कर लो रन। अब देखो यहां पे एक

33:35इंटरेस्टिंग चीज़ जब मैं अपने कोड को रन

33:38करूंगा इस ग्रीन बटन पे क्लिक करके रन मेन

33:40डॉट java तो मेरा स्क्रीन पे हेलो वर्ल्ड

33:42तो प्रिंट हो जाएगा उसकी कोई दिक्कत नहीं

33:44है। पर मेरा हेलो वर्ल्ड प्रिंट होने के

33:46लिए जो जेबीए मेरे कोड को रन किया होगा

33:48उससे पहले मेरा कोड कंपाइल स्टेज से गुजरा

33:50होगा। है ना? तो मेरा कोड कंपाइल हुआ

33:52होगा। उसकी बाइट कोड बनी होगी। पर ये बाइट

33:54कोड क्या मेरा मेवन बना रहा है एग्जैक्टली

33:56यहां पे? आंसर है नहीं। देखो होगा क्या?

33:58जब मैं इस पे क्लिक कर रहा हूं तो मेरे

34:00इंटेलिजे का बिल्ड सिस्टम है। तो इस

34:02इंटेलिज के बिल्ड सिस्टम से मेरा कोड पहले

34:04कंपाइल होगा और इंटेलिजे ही मेरे कोड को

34:06रन करेगा। पर यहां पे इंटेलिजें को पता है

34:09कि अंदर से क्योंकि मैं मेवन यूज़ कर रहा

34:10हूं और मेवन का बिल्ड सिस्टम यूज़ कर रहा

34:13हूं। तो जो मेरा कंपाइल्ड कोड है ना वो

34:15रखेगा बिल्कुल सिमिलर फोल्डर में वो

34:17टारगेट फोल्डर बनाएगा। उसके अंदर सेम

34:18फोल्डर स्ट्रक्चर जो हमने अभी देखा था और

34:20वहां पे ही उन कोड को रखेगा। कोई अलग से

34:23फोल्डर सिस्टम नहीं बनाएगा। राइट? तो ये

34:25बहुत इंटरेस्टिंग तरीका है। तो हमें ऐसा

34:26लगता है कि मेवन के थ्रू ही कंपाइल हो रहा

34:28है और इसका और इसमें कोई फर्क नहीं है। पर

34:30एग्जैक्टली अगर हम अंदर तक जाएंगे तो फर्क

34:31है। तो अगर मैं देखो यहां पे क्लिक करता

34:33हूं तो मेरा कोड यहां पे बिल्ड हुआ होगा।

34:35फिर रन हो गया होगा हेलो वर्ल्ड और आप

34:36देखोगे तो टारगेट फोल्डर अगेन बन गया है।

34:38क्लासेस के अंदर अगर आप जाओगे तो अगेन सेम

34:40फोल्डर स्ट्रक्चर है और ये सब है आपकी डॉट

34:43क्लास फाइल। ठीक है? ओके। आई होप आपको ये

34:46सब समझ आया। अगर आपको समझ आया ना कि ये सब

34:48क्या कर रहा है। फोल्डर स्ट्रक्चर बना रहा

34:49है। आपके कोड को कंपाइल करेगा। आपके आपकी

34:51जार फाइल भी क्रिएट करेगा। इनफैक्ट मैं

34:53आपको यह भी करके दिखा देता हूं। तो लेट्स

Creating JAR

34:55से मैं अपने मेवन पे गया तो यहां पे देखो

34:58बहुत सारी लाइफ साइकिल है। मेरे को एक

35:00क्लिक करना है पैकेज पे। अभी पूरी लाइफ

35:01साइकिल क्या है वो मैं थोड़ी देर में

35:02बताऊंगा। जैसे ही देखो मैं पैकेज पे क्लिक

35:04करूंगा मेरा कुछ कोड रन होगा थोड़ी देर के

35:07लिए और यहां पे वो बना देगा मेरा एक

35:09पैकेज। और आप इसको ध्यान से देखोगे तो

35:11देखो मेरी यहां पे डॉट जार फाइल बन रही

35:13है। उसका एग्जैक्टली नाम क्या है?

35:14बिल्डिंग जार। अब मेरी जार फाइल का नाम

35:16देखो मेवन डेवो hन 1.0 hfन snapshot डॉट

35:20जार। अगेन ये नाम इंपॉर्टेंट है। आपको

35:22थोड़ी देर में बताऊंगा क्यों। पर अब ये

35:23जार फाइल मेरी आई कहां होगी। अब देखो मेरा

35:25यहां पे अगेन एक टारगेट फोल्डर बन गया।

35:27टारगेट फोल्डर में मेरी क्लासेस के अंदर

35:29तो आ गई मेरा कंपाइल्ड कोड। इसको मैं छोड़

35:31देता हूं। पर अगर आप नीचे जाओगे तो देखो

35:33ये रही मेरी जार फाइल। यानी कि टारगेट

35:36फोल्डर के अंदर ही मेरे मेरे मेवन ने मेरी

35:38जार फाइल को रख दिया। तो ये पूरा पैकेज

35:40है। इसमें मेरी सारी चीजें प्रेजेंट होगी

35:42जो भी मैंने यहां पे लिखी है। और इसको मैं

35:43अपनी जार फाइल को किसी के साथ शेयर कर

35:45सकता हूं। राइट? पर अगेन हमें मैनुअली

35:48शेयर करने की जरूरत नहीं है। हम मेवन यूज़

35:50कर रहे हैं तो उसको हम यूज़ करेंगे। तो

35:51देखो हमने तीन चीजें देख ली। फोल्डर

35:52स्ट्रक्चर कंपाइल को करता है हमारे कोड

35:54को। हमारे लिए जार फाइल बनाता है। और उसका

35:56चौथा पॉइंट था कि वो हमारे लिए

35:58डिपेंडेंसीज को भी डाउनलोड कर सकता है। ये

36:00बहुत इंपॉर्टेंट पॉइंट है। और इसे देखने

36:03के लिए हमें अपने जेवीएम की सबसे

36:05इंपॉर्टेंट फाइल पोम डॉटexml को समझना

36:08पड़ेगा। सबसे पहले यहां पे पोम की फुल

36:10फॉर्म क्या है? पोम की फुल फॉर्म है

36:12प्रोजेक्ट ऑब्जेक्ट मॉडल। अब क्या मतलब

36:15होता है? पॉम का एक बार उसके अंदर जाके

36:17देखते हैं। तो देखो सबसे पहले तो मैं आता

36:19हूं अपने मेवन प्रोजेक्ट पे जो हमने अभी

36:22बनाया था। इस टारगेट को बंद करते हैं और

36:24अपना ये मेन डॉट jवा फाइल है। हेलो वर्ल्ड

36:26यहां पे हमने प्रिंट किया हुआ था। हम सबसे

36:28पहले चलते हैं अपने pm डॉट एक्सml फाइल

Understanding Pom.xml

36:30में इस वाली फाइल में। तो देखो ये आपको

36:32दिखेगी एक्सML फाइल। ठीक है? अब क्योंकि

36:34ये बिल्कुल खाली प्रोजेक्ट है। अभी तक

36:36हमने इसमें कुछ डिपेंडेंसीज नहीं इंस्टॉल

36:38की हुई हैं। तो आपको फॉर्म बहुत छोटा

36:40दिखेगा। पर जैसे-जैसे हम कॉन्फ़िगरेशन

36:42सेटअप करते हैं, नई डिपेंडेंसीज डालते

36:44हैं, इस फॉर्म का साइज बढ़ता रहता है। अगेन

36:46हम देखेंगे उसको, सब कुछ समझेंगे। इस

36:48एक्सml में सारी चीजें क्या हैं? पर सबसे

36:50पहले ये पोम आपको बताता क्या है? अब ये

36:52पूरा का पूरा एक्सML है ना? सबसे पहले मैं

36:54इसको बंद कर देता हूं। हां। अब सबसे पहले

36:55पोमट एक्सml आपको बताता क्या है? ये ना

36:58मेवन को या आपको प्रोजेक्ट के बारे में

37:00कंप्लीट इंफॉर्मेशनेशन देता है। जैसे

37:02प्रोजेक्ट का नाम क्या है? उसका वर्जन

37:03क्या है? आपके प्रोजेक्ट में कौन-कौन सी

37:05थर्ड पार्टी लाइब्रेरीज हैं? कौन से आपके

37:08प्रोजेक्ट में प्लगइिंस हैं। अब प्लगइिंस

37:09क्या होता है वो हम देखेंगे। ठीक है? तो

37:11बेसिकली आपके प्रोजेक्ट के बारे में

37:12कंप्लीट इंफॉर्मेशनेशन स्टोर करता है

37:14pm.xml फाइल और मेवन के लिए सबसे जरूरी

37:17फाइल है। तो अगर मैं इस pml को ओपन करूं

37:20तो देखो मेरे पास ये सारे xml

37:22कॉन्फ़िगरेशंस हैं। इसको एक-एक करके समझते

37:24हैं। सबका मीनिंग क्या है? बहुत सिंपल है।

37:26सबसे पहले देखो आपको रूट टैग मिलेगा।

37:27प्रोजेक्ट टैग। देखो ये रहा प्रोजेक्ट टैग

37:29जो बताएगा हम एक पॉम डॉट एक्सml फाइल को

37:31शुरू कर रहे हैं। तो हर पॉम स्टार्ट होता

37:33है एक प्रोजेक्ट टैग से। ठीक है? उसके बाद

37:35आपको यहां पे कुछ तीन लाइंस मिलेंगी ये

37:37वाली। ठीक है? ये क्या है? ये आपको बताती

37:40है आपके पोम का स्कीमा डिजाइन। बेसिकली

37:42आपके पोम के रूल्स। अब कैसे रूल्स? फॉर

37:44एग्जांपल इसमें बहुत सारे टैग्स होंगे। अब

37:46ये एग्जाम टैग्स हैं। राइट? और आपको अगर

37:48पता होगा बेसिक आईडिया एक्सेल टैग्स क्या

37:50होता है? किसी टैग से ओपन होते हैं। तो एक

37:52ओपन टैग होता है उसमें और उसमें क्लोजिंग

37:54टैग होता है। कुछ इस तरीके से। ठीक है? अब

37:56ये जो हमारी तीन लाइंस है, ये स्कीमा

37:58बताती है कि आपका जो डिज़ाइन है, वो क्या

38:01होगा? उसमें कौन-कौन से रूल्स होंगे?

38:03कौन-कौन से टैग्स अलाउड है। जैसे इसमें

38:04मॉडल वर्जन अलाउड है। ठीक है? इसमें ये

38:07टैग्स अलाउड हैं, ये टैग्स अलाउड हैं

38:08वगैरह-वगैरह। और इसमें और कौन-कौन से मैं

38:10नए टैग्स डाल सकता हूं। तो कुछ टैग्स

38:12अलाउड होंगे। कुछ टैग्स नहीं अलाउड होंगे।

38:13ऐसा नहीं है कि मैं खुद का कोई भी टैग डाल

38:15दूंगा। लेट से मैंने ए बी सी करके एक ओपन

38:17क्लोज टैग डाल दिया। राइट? अगर मैं इसमें

38:19होवर करूंगा तो देखो मुझे आ जाएगा इनवैलिड

38:21कॉन्टेक्स्ट वाज़ फाउंड। इसको पता ही नहीं

38:22है टैग क्या है। ये रूल्स के अगेंस्ट है।

38:24ऐसा थोड़ी एग्जाम है तो आप कोई भी टैग डाल

38:26दोगे। तो क्या रूल्स हैं आपके प्रोजेक्ट

38:28के? क्या स्कीमा है उसका? ये सब बताते हैं

38:29ये तीन चीजें। ठीक है? उसके बाद आता है

38:32हमारा एक मॉडल वर्जन। अब मॉडल वर्जन क्या

38:34बताता है? मॉडल वर्जन बताता है कि आपके

38:36पोम का वर्जन क्या है? अब यहां पे ध्यान

38:39से सुनना। मैं बात कर रहा हूं पोम के मॉडल

38:40के ना कि आपके मेवन के मॉडल के। ठीक है?

38:43तो मेवन का वर्जन कुछ भी हो सकता है। मैं

38:44पोम के वर्जन की बात कर रहा हूं। पोम का

38:46वर्जन है 4.0.0।

38:48ठीक है? ओके? उसके बाद आते हैं हमारे सबसे

38:51जरूरी तीन टैग्स जीएवी। ग्रुप आईडी,

38:54आर्टिफेक्ट आईडी और वर्जन। ये तीनों टैग्स

38:56मिलाकर के आपके पूरे के पूरे प्रोजेक्ट को

38:59यूनिकली आइडेंटिफाई करते हैं। देखो हर

39:02प्रोजेक्ट में ना एक ग्रुप आईडी होती है,

39:03एक आर्टिफेक्ट आईडी और एक वर्जन। ठीक है?

39:05ये बताता है कि आपके प्रोजेक्ट का नाम

39:08यूनिकली क्या होगा पूरी दुनिया में और ये

39:10किसी का नाम नहीं हो सकता। ये बिल्कुल

39:12यूनिक होगा। कैसे देखते हैं। सबसे पहले

39:14ग्रुप आईडी। अब ग्रुप आईडी सबसे पहले वो

39:16होनी चाहिए जो यूनिक है। राइट? तो बेसिकली

39:19अगर आप अपने पूरे प्रोजेक्ट का एक जार

39:21फाइल बनाओ और उसको आप इंटरनेट पे अपलोड

39:23करो तो उस नाम से और कोई जार फाइल नहीं

39:26होनी चाहिए। राइट? ये आपको मेक श्योर करना

39:28है ताकि अगर कोई आपकी लाइब्रेरी यूज़ करना

39:30चाहता है तो वो इंडिपेंडेंटली आपकी

39:31लाइब्रेरी का नाम डाल सके। पर अब आप सोचो

39:33आप अपने नाम को यूनिक कैसे करोगे? तो

39:36इसमें ना हम एक बहुत अच्छा नोमेनक्लेचर

39:38यूज़ करते हैं। ठीक है? और अगेन ये

39:40स्प्रिंग ओरिएंटेड नहीं है। ये मेवन

39:41ओरिएंटेड है। हम क्या करते हैं? हमारे

39:43दुनिया में सबसे यूनिक नाम क्या होता है

39:45हमारे डोमेनस का? तो जो भी हमारा डोमेन है

39:47जैसे कि coderm.in हमारा डोमेन है तो हम

39:50उसको यूज करते हैं एज एन ग्रुप आईडी

39:52क्योंकि सबका डोमेन यूनिक होता है। है ना?

39:54और उसको यूज़ करते हैं उल्टा करके। तो फॉर

39:56एग्जांपल अभी तो यहां पे ऑर्ग डॉट

39:58एग्जांपल लिखा हुआ है। तो अगर मैं चाहूं

40:00तो इसकी जगह अपने कोडर आर्मी का डोमेन यूज़

40:01कर सकता हूं। मेरा डोमेन है कोडर आर्मी.in

40:03तो मैं कर सकता हूं इन डॉट coder आर्मी

40:06कोडर आर्मी। कुछ इस तरीके से इससे पता लग

40:09जाएगा कि ये जो प्रोजेक्ट है ये जो जार

40:11फाइल बनेगी ये मेरी कंपनी को बिलोंग करती

40:13है। राइट? अब आप बोलोगे भैया मेरे पास तो

40:15खुद की कोई डोमेन नेम है ही नहीं। कोई बात

40:17नहीं। हम उसकी जगह आराम से अपना ऑर्ग डॉट

40:20एग्जांपल यूज़ कर सकते हैं। कोई दिक्कत

40:21नहीं। हमें तो प्रैक्टिस करनी है। पर

40:22बताने का बस तरीका था कि आप एक डोमेन नेम

40:24यूज़ कर सकते हो और उसका नोमेनक्लेचर या

40:26उसका कन्वेंशन क्या है? उसको उल्टा करके

40:28फॉर एग्जांपल मेरा डोमेन हैर आर्मी.in तो

40:29मैं लिखूंगा in डॉट कोडर आर्मी। इनफैक्ट

40:31उसके आगे भी मैं लगा सकता हूं कुछ। in

40:33डॉटर आर्मी डॉट लेट्स से कोर्स या in डॉट

40:36कोडर आर्मी डॉट java in डॉट कोडर आर्मी

40:38डॉट स्प्रिंग। तो एक प्रॉपर यूआरएल रख

40:40सकता हूं मैं यहां पे एज अ ग्रुप आईडी।

40:42आर्टिफेक्ट आईडी का मतलब होता है मेरे

40:43प्रोजेक्ट का नाम। तो मैंने अभी देखो अपने

40:45प्रोजेक्ट का नाम रखा हुआ है मेवन डेमो।

40:46तो ये मेरा आर्टिफेक्ट आईडी हो गया और

40:48यहां पे होता है वर्जन। तो बाय डिफॉल्ट

40:50अभी हमने इसको पहली बार बनाया तो मेवन ने

40:51इसके वर्जन का नाम रख दिया 1.0 स्नैपशॉट।

40:54राइट? यहां पे याद है आपको स्नैपशॉट क्या

40:56होता है? हमने लास्ट क्लास में डिस्कस

40:57किया था कि जब हम स्प्रिंग इनिशियलाइजर

40:59यूज़ करते हैं अपने प्रोजेक्ट को बिल्ड

41:01करने के लिए। तो स्नैपशॉट्स वो सारे

41:02प्रोजेक्ट्स होते हैं जो अभी वर्किंग फज़

41:04में है। राइट? अभी काम उस पे चल रहा है।

41:06हो सकता है उसमें कुछ बग्स हो। तो इसके

41:07हिसाब से भी क्योंकि आप अपने प्रोजेक्ट को

41:09अभी बना रहे हो। राइट? आपका प्रोजेक्ट

41:11वर्किंग स्टेज पे है। इसलिए उसने यहां पे

41:13नाम रखा हुआ है स्नैपशॉट। अगेन ये

41:14कन्वेंशन है। आप जब हो सकता है आप अपना

41:16प्रोजेक्ट कंप्लीट कर दो और इस वर्जन को

41:18आप यहां पे स्नैपशॉट को हटा करके सेव कर

41:20दो कि अब आपका ये प्रॉपर वर्जन हो चुका

41:22है। काम पूरा कंप्लीट हो चुका है। आपने

41:24टेस्टिंग कर ली। कोई बग्स नहीं है ताकि कल

41:26को आपकी कोई जार फाइल जो आप यहां पे

41:27बनाओगे उसको आराम से यूज़ कर सकें। राइट?

41:30अगेन ये कन्वेंशन है। उसके बाद दिखेंगी

41:32आपको कुछ प्रॉपर्टीज़। अब प्रॉपर्टीज़ क्या

41:34होता है? प्रॉपर्टीज़ का मतलब होता है की

41:36वैल्यू पेयर। जिसमें देखो ये आपकी की है।

41:38ठीक है? और ये अंदर आपकी वैल्यू है। राइट?

41:40अब एग्जाम में तो आपको पता है अगर आप कोई

41:42टैग ओपन करते हो तो आप उसको क्लोज भी करते

41:44हो। तो ये आपको की ये आपकी एक की

41:46रिप्रेजेंट कर रहा है। तो आपने की को ओपन

41:47किया की को क्लोज कर दिया और अंदर है आपकी

41:50वैल्यूज़। तो यहां पे देखो कुछ की वैल्यूज़

41:51हैं। जैसे मेव इन कंपाइलर सोर्स क्या है?

41:5323। कंपाइलर टारगेट सोर्स क्या है? 23 और

41:56आपका कुछ सोर्स एनकोडिंग है यूटीएफ 8

41:59वगैरह-वगैरह। अब ये अगेन उसने खुद से

42:00जनरेट की है। है ना? हमें इससे मतलब नहीं

42:02है। अगर हम यहां पे कोई और की रखना चाहें

42:04तो वो भी रख सकते हैं। फॉर एग्जांपल मैं

42:06यहां पे रख सकता हूं लेट्स से java डॉट

42:09वर्जन और उसको मैं रखता हूं 23 क्योंकि

42:11मैं 23 का जावा वर्जन यूज़ कर रहा हूं। ठीक

42:13है? तो मैं चाहूं तो इसको एक की बना सकता

42:15हूं। इनफैक्ट मैं यहां पे खुद का कोई भी

42:17फालतू की की बना सकता हूं। लेट्स से नेम अ

42:20लेट्स से लेट्स से ऑथर ऑथर डॉट नेम। तो ये

42:24मैंने खुद की की बना दी और यहां पे नाम रख

42:25दिया आदित्य। ठीक है? ऑथर डॉट नेम आदित्य।

42:28यहां पे मुझे कोई एरर नहीं आएगा क्योंकि

42:29प्रॉपर्टीज में मैं खुद का कुछ भी की

42:30वैल्यू यूज़ कर सकता हूं। इनफैक्ट इस की

42:32वैल्यू को अगर मुझे कहीं फॉर्म में पूरी

42:35जगह यूज़ करना है तो मेरे पास एक तरीका

42:37होता है। मैं क्या करूंगा? अब मान लो मैं

42:39चाहता हूं कि जब मैं इस वर्जन को स्टोर

42:41करूं ना तो मेरा स्टोर हो 1.0 Snaps hfन

42:44आदitya। तो मैं बेसिकली यहां पे आदित्य

42:46चाहता हूं मैं। ठीक है? ये मैं कर सकता

42:47हूं। ये तो मेरा वर्जन है। कुछ भी चाहूं।

42:49तो मैं यहां पे आदित्य या तो डायरेक्टली

42:50लिख दूं या फिर क्योंकि मैंने इसमें अपनी

42:52की वैल्यू में उसको सेव किया हुआ है तो

42:54मैं यहां पे लिख सकता हूं डॉलर और यहां पे

42:57अपने अ

42:59की का नाम ऑथर डॉट नेम कुछ इस तरीके से तो

43:01अब देखो जब मैं इसको कंपाइल करूंगा और

43:03मेरा जो जार फाइल क्रिएट होगी उसका नाम

43:05होगा 1.0 स्नैपशॉट - a ऑथर डॉट नेम तो

43:09इसको करने के लिए एक बार जाते हैं मेवन पे

43:10और हम करते हैं दोबारा से पैकेज तो देखो

43:13मेरा दोबारा एक पैकेज बनेगा और जैसे ही

43:15मेरा देखो पैकेज बना उसका नाम क्या है मेन

43:17-10 स्नैपशॉट माइनस आदित्य ये एक

43:20एक्स्ट्रा यहां पे लग गया। इसको हम कट कर

43:22सकते हैं और लेट्स से दोबारा अपना पैकेज

43:24बिल्ड करते हैं। ठीक है? देखो आदित्य। ठीक

43:28है? तो ये होता है आपका की वैल्यू पेयर्स।

43:30आप इसको यूज़ कर सकते हो। कोई की यहां पे

43:32सेटअप कर दो और पूरे फॉर्म में उसकी कोई

43:34वैल्यू फच करनी हो तो आप कर सकते हो

43:35मल्टीपल जगहों पे। ठीक है? अभी के लिए

43:37इसको मैं हटा देता हूं। और ये सब भी जो

43:39मैंने खुद से जनरेट किया है इसको भी हटा

43:40देते हैं। तो ये है आपकी प्रॉपर्टीज। अब

43:43यहां पे आपका फॉर्म खत्म हो गया। ठीक है?

43:46इसके अलावा आप यहां पे और भी बहुत सारे

43:48टैग्स लगा सकते हो। यहां ये आपके लग आपको

43:50लगे मिल जाएंगे। जब आप अलग-अलग

43:52प्रोजेक्ट्स के टेंपलेट डाउनलोड करोगे। अब

43:54जैसे एक बहुत ही फेमस टैब है। फेमस टैग है

43:57पैकेजिंग। तो आप यहां पे दो चीजें लिख

44:00सकते हो। या तो जार या तो वार तो इसकी जगह

44:03आप वार वेब आरकाइव भी लिख सकते हो। पर

44:05हमें पता है क्योंकि हम चाहते हैं हमारा

44:06एक जार फाइल बने। तो हम यहां पे जार लिखते

44:08हैं। इनफैक्ट अगर आप ये नहीं भी लिखोगे तो

44:10भी ये बाय डिफ़ॉल्ट जार ही होता है। ठीक

44:11है? ये मैंने आपको बस बता दिया कि ये भी

44:13एक टैग एक्सिस्ट करता है। ओके। अब ना एक

44:16और इंटरेस्टिंग टैग के बारे में सोचते

44:17हैं। मैंने कहा था ना हमारा फोर्थ पॉइंट अ

Downloading dependencies through Maven

44:20कहां गया यहां पे? हां डिपेंडेंसी

44:23डाउनलोड। अगर आपको कोई एक्सटर्नल

44:26डिपेंडेंसीज यूज़ करनी है अपने प्रोजेक्ट

44:27में तो एक तरीका तो था आप उसे मैनुअली

44:29डाउनलोड करो। राइट? जो मैंने कहा था बहुत

44:31ही बेकार तरीका है। दूसरा और बहुत ही

44:33बेहतरीन तरीका था आप उसको डाउनलोड करो

44:35मेवन के थ्रू। कैसे? अब यहां पे एक बहुत

44:37ही इंटरेस्टिंग टैग आता है जिसका नाम है

44:39डिपेंडेंसीज। ठीक है? ठीक है? डिपेंडेंसीज

44:42और इसके अंदर आप वो सारी डिपेंडेंसी या

44:44सारी एक्सटर्नल जार फाइल्स रख सकते हो जो

44:46भी आपको अपने प्रोजेक्ट के लिए चाहिए। आप

44:48उन्हें कैसे रखोगे? अगेन एक-एक करके आप

44:50डिपेंडेंसी यहां पे देते जाओगे और हर

44:52डिपेंडेंसी का देखो एक ग्रुप आईडी होगी और

44:54एक आर्टिफेक्ट आईडी होगी। ठीक है? यानी कि

44:56हर जार फाइल की भी खुद की एक ग्रुप आईडी

44:58और आर्टिफेक्ट आईडी होती है। जैसे आपकी

45:00जार फाइल की होगी। राइट? इंटरनेट से भी तो

45:02आप एक जार ही डाउनलोड करोगे। इसके अलावा

45:03यहां पे इसका वर्जन भी होगा जो कि इसने

45:05खुद से जनरेट नहीं किया। अ वर्जन कुछ इस

45:08तरीके से है ना? अब यहां पे अगर मुझे कोई

45:10डिपेंडेंसी डालनी है, लेट से मेरे को अपने

45:12कोड को मेरे को अपनी एप्लीकेशन को माय

45:14सीक्वल से कनेक्ट करना है। तो मुझे एक माय

45:15सीक्वल कनेक्टर चाहिए होगा। पर मुझे नहीं

45:17पता ना उसका एग्जैक्ट ग्रुप आईडी क्या

45:18होगी? आर्टिफेक्ट आईडी क्या होगी। है ना?

45:20अगर मुझे पता होता मैं सीधा यहां पे डाल

45:22देता। पर मुझे उसका नाम कैसे पता लगेगा?

45:23मुझे बस इसको उसका नाम देना है। एक बार

45:25मैंने मेवन को नाम बता दिया तो मेवन उसको

45:27अपने आप डाउनलोड कर लेगा। मुझे वो सब करने

45:30की जरूरत नहीं है। तो सबसे पहले तो मुझे

45:31उसका नाम नहीं पता। तो मैं क्या करूं?

45:32क्या मुझे वो सारे नाम याद करने की जरूरत

45:34है? आंसर है बिल्कुल नहीं। सबसे पहले तो

45:36मैं हटाता हूं ये डिपेंडेंसी का टैग। ठीक

45:37है? अभी अपने डिपेंडेंसीज को खाली छोड़

45:39देते हैं और चलते हैं एक बहुत ही

45:41इंटरेस्टिंग वेबसाइट पे जिसका नाम है मेव

45:44एंड रिपोजिटरी। तो देखो आपका यूआरएल होगा

45:46एमवी एंड रपोज़िटरी.com ठीक है? ये वाला

45:48थोड़ा सा मैंने ज़ूम किया हुआ है पेज को। अब

45:50यहां पे ना आप कोई भी डिपेंडेंसी को सर्च

45:52कर सकते हो। तो फॉर एग्जांपल जैसे मैंने

45:54कहा मेरे को अपने jवा को मेरे को अपने

45:56जावा के कोड को अपने डेटाबेस से कनेक्ट

45:58करना है। और कौन से डेटाबेस से? My सीक्वल

46:00से। तो मुझे चाहिए होगा एक माय सीक्वल

46:02कनेक्टर। तो मैं यहां पर लिख सकता हूं

46:03लेट्स से माय सीक्वल कनेक्टर।

46:08तो देखो मेरे पास सबसे पहला लिंक आ गया

46:10माय सीक्वल करैक्टर जे ठीक है इसी इसी की

46:12मेरे को जरूरत है। मैं इसको ओपन करता हूं।

46:13तो देखो जैसे ही मैं स्क्रॉल डाउन करूंगा

46:15ना मुझे बहुत सारे इसके वर्जनंस मिलेंगे।

46:17है ना? मैं चाहूं तो कोई भी वर्जन यूज़ कर

46:20सकता हूं। पर इंटरेस्टिंगली मुझे कौन सा

46:21वर्जन यूज़ करना चाहिए? आंसर है बिल्कुल

46:23लेटेस्ट तो बिल्कुल नहीं। राइट? क्योंकि

46:25उसमें बग्स होने के सबसे ज्यादा चांसेस

46:26होते हैं। वो भी हो सकता है बहुत अच्छा

46:28टेस्ट ना हो और बहुत ही कम लोग उसे यूज़ कर

46:30रहे हैं। अब उससे मैं उसका थोड़ा पीछे का

46:32वर्जन ले सकता हूं। 168 लोग इसे यूज़ कर

46:34रहे हैं। उसके थोड़ा और पीछे का 193 लोग

46:36इसे यूज़ कर रहे हैं। है ना? और जितना मैं

46:38पीछे जाऊंगा उतने ज्यादा लोग उसे यूज़ कर

46:40रहे होंगे। है ना? ये तो ऑब्वियस है। पर

46:41मैं बहुत पीछे भी नहीं जाना चाहता है ना?

46:43ताकि वर्जन मिसमैच ना हो जाए। मैं चाहता

46:44हूं मेरी सारी चीजें लेटेस्ट रहे। तो मैं

46:46सबसे बेस्ट एक काम करता हूं। मैं ये वाला

46:48यूज़ कर लेता हूं थर्ड बेस्ट है ना? 9.5.0

46:51तो मैं क्लिक करूंगा इस वर्जन के ऊपर। और

46:53मैं आ गया इस पेज पे। अब मैं स्क्रॉल डाउन

46:55करूंगा। तो देखो मुझे बहुत सारे तरीकों से

46:57डिपेंडेंसी मिल जाएगी। या तो मेवन वाली,

46:58ग्रेड, एसबीटी, मिल, आईवीवाई, ग्रेप

47:01वगैरह-वगैरह। पर मुझे तो मेरी मेवन

47:03डिपेंडेंसी चाहिए। तो देखो जैसे ही मैं

47:04इसे टैप करूंगा मेरा कॉपी हो जाएगा

47:05क्लिपबोर्ड पे और मैं इसके अंदर आकर के कर

47:08सकता हूं यहां पे इसे पेस्ट। ठीक है? ये

47:10तो कमेंट लाइन है। इसे आप हटा सकते हो। तो

47:12देखो इसने एक डिपेंडेंसी पेस्ट कर दी

47:13जिसकी ग्रुप आईडी का नाम है commyes। ठीक

47:16है? ये अगेन यूनिक होना चाहिए। तो ये माय

47:18एसक्यूएल ने बनाया है। इसका कनेक्टर तो

47:20इसका नाम है कॉमyक्यूएल। आर्टिफेक्टरी आई

47:22आर्टिफेक्ट आईडी का नाम है माय सीक्वल

47:24कनेक्टर j। ठीक है? ये उसके प्रोजेक्ट का

47:26नाम हो गया। इसका वर्जन है 9.5.0 जो मैंने

47:29डाउनलोड किया। अब ये स्कोप क्या है? देखो

47:31स्कोप ये ऑप्शनल है। इनफैक्ट पहले के

47:33वर्जनंस में आपको स्कोप मिलेगा भी नहीं।

47:34सिर्फ तीन चीज मिलेगी। ग्रुप, आर्टिफेक्ट

47:36और वर्जन। स्कोप बस आपको ये बताता है कि

47:38ये जो डिपेंडेंसी है ये आपको अपने कोड के

47:41किस फज़ में जरूरत पड़ेगी। तो बाय डिफॉल्ट

47:43स्कोप हमेशा कंपाइल होता है। ठीक है? तो

47:45आपको ये जो डिपेंडेंसी है कंपाइल टाइम पे

47:47चाहिए होगी। कभी कबभार इसका स्कोप चेंज हो

47:49सकता है। कभी कबभार हो सकता है टेस्ट हो।

47:50तो आपको ये डिपेंडेंसी टेस्ट फज़ में

47:52चाहिए। अगेन जो अगेन जब हम फज़ देखेंगे मेव

47:54इन के ये सब जो फज़ है तब आपको ये ज्यादा

47:56बेटर समझ आएगा। और ये ऑप्शनल फील्ड है। पर

47:58सबसेेंट फील्ड है हमारी ग्रुप आईडी,

48:00आर्टिफ आईडी और वर्जन। ठीक है? तो यहां पे

48:02इसके जो नाम है सारे वो मैंने यहां पे मेम

48:04एंड रिपॉजिटरी से उठा लिए। मुझे खुद से ये

48:05सब पता होने की जरूरत नहीं है। पर क्या

48:07मैंने यहां पे लिखते ही मेरी डिपेंडेंसी

48:09डाउनलोड हो गई? आंसर है नहीं। अभी आप

48:11देखोगे मेरी एक्सटर्नल लाइब्रेरीज के अंदर

48:12जाके तो यहां पे सिर्फ मेरी ओपन जेडीके की

48:15डिपेंडेंसी है। राइट? एक ही डिपेंडेंसी है

48:17मेरे जावा कोड की और कोई डिपेंडेंसी नहीं

48:19है। तो ऐसे तो डिपेंडेंसी डाउनलोड नहीं

48:21हुई। ठीक है? पर देखो या तो मुझे मैनुअली

48:23उसे डाउनलोड करना पड़ता या फिर मैंने बस

48:25इस टैब के अंदर उसका नाम बता दिया और अब

48:28बस मुझे मेवन को बोलना है कि तू इसे

48:29डाउनलोड कर ले। अब वो मैं इसे कैसे

48:31बोलूंगा? तो आप यहां पे एक आइकॉन देख रहे

48:32हो एम का और ये रीलोड आइकॉन आपको बस इस पे

48:35क्लिक करना है। ठीक है? अगर आपको ये आइकॉन

48:37शो नहीं हो रहा। आप यहां पे मेवन पे जाओ।

48:39आपको यहां पे वो आइकॉन शो हो रहा होगा।

48:41ठीक है? आप इसको भी क्लिक कर सकते हो।

48:42अगेन सेम काम होगा। तो अभी मैं इसको क्लिक

48:44करता हूं। तो देखो मैं क्या होगा? मेरी

48:46सारी डिपेंडेंसीज डाउनलोड होगी इंटरनेट से

48:48और वो मेरी डिपेंडेंसी आ जाएंगी एक्सटर्नल

48:51लाइब्रेरीज़ के अंदर। ठीक है? अब यहां पे

48:53ये काम ना मेरा बहुत फास्ट हो गया और हो

48:55सकता है जब आप पहली बार करो तो बहुत स्लो

48:56हो। क्यों? क्योंकि ये डिपेंडेंसीज मैंने

48:59पहले भी डाउनलोड करी होंगी और मेरे लोकल

49:01सिस्टम पे वो कैश हो रखी होंगी। अब वो

49:03कहां कैश होती है वो भी आपको बताऊंगा मैं

49:05एग्जैक्टली। पर अभी के लिए आप मान लो जब

49:06आप पहली बार इसे करोगे ना तो वो थोड़ा सा

49:08स्लो होगा। जैसे ही देखो आप मेरी

49:09एक्सटर्नल लाइब्रेरीज के अंदर मेरे दो

49:11डिपेंडेंसी डाउनलोड हो गई। My सीक्वल

49:13कनेक्टर और एक Google प्रोटो बफ की भी। पर

49:15मुझे तो सिर्फ माय सीकल कनेक्टर चाहिए था।

49:17ये कहां से आया? ठीक है? अब ये यहां से

49:19अच्छे से समझ नहीं आ रहा। यहां पे समझने

49:21के लिए ना हम इस मेवन के अंदर जाते हैं।

49:22और देखो यहां पे एक नया टैग बन गया होगा

49:24डिपेंडेंसीज का। अब इसको लाइफ साइकिल को

49:26इसको बंद कर दो। आप खोलो डिपेंडेंसीज का

49:28टैग। और देखो यहां पे मेरे पास एक ही

49:30डिपेंडेंसी है माय सीक्वल कनेक्टर। पर अगर

49:32मैं इसको ओपन करूंगा तो इसके अंदर एक और

49:35डिपेंडेंसी है Google प्रोटोब। इसका मतलब

49:37ये है कि ये एक ट्रांजिटिव डिपेंडेंसी है।

49:39मुझे चाहिए माय सीक्वल कनेक्टर। पर Mys

49:41सीक्वल कनेक्टर को रन होने के लिए Google

49:43प्रोटोब नाम की कोई डिपेंडेंसी चाहिए। ठीक

49:46है? तो अब आप सोचो अगर मैं इसको मैनुअली

49:48डाउनलोड करता तो मुझे Myscl कनेक्टर भी

49:50करना पड़ता। Google प्रोटोब भी करना

49:51पड़ता। इससे बेटर मैंने क्या किया? मैंने

49:53बस मेवन को बोला मुझे माय सीक्वल कनेक्टर

49:56की डिपेंडेंसी डाउनलोड करनी है। उसने क्या

49:58किया? वो भी डाउनलोड करी। और अगर माय

50:00सीक्वल को कोई और डिपेंडेंसी चाहिए तो वो

50:01भी डिपेंडेंसी डाउनलोड कर दी। तो यहां पे

50:03देखो प्रॉपर हायरार्की दिखती है कि मुझे

50:05ये चाहिए था। उसके अंदर मुझे ये अपने आप

50:07मिल गया। ठीक है? डिपेंडेंसीज के अंदर। पर

50:09अगर आप यहां पे देखोगे तो यहां पे आपको

50:10हायरार्की नहीं पता लगेगी कौन किसके अंदर

50:12आता है। पर यहां पे मेरी दो डिपेंडेंसी

50:14डाउनलोड हो गई। ठीक है? बस एक डिपेंडेंसी

50:16का टैग लगा के। राइट? तो अब मैं अपने कोड

50:18में अब माय सीक्वल कनेक्टर का मैंने

50:20ड्राइवर तो लिख दिया। अब बस मुझे क्या

50:22करना होगा? कुछ कोड लिखना होगा अपने

50:24डेटाबेस से कनेक्ट करने का। राइट? अब मान

50:26लो मुझे एक और डिपेंडेंसी की जरुरत है।

50:27मेरे को हाइबर नेट के साथ काम करना है।

50:29ठीक है? अब अभी ऑब्वियसली हमने हाइबर नेट

50:31या फिर डेटाबेस से कैसे कनेक्ट करते हैं

50:33वो सब नहीं पढ़ा। पर अभी आप इमेजिन करो वो

50:35सब बाद में पढ़ेंगे। पर सबसे पहले हमें

50:36उसकी डिपेंडेंसी तो डालनी ही पड़ेगी अपने

50:38प्रोजेक्ट के अंदर। है ना? अगर हमें उसे

50:39यूज़ करना है तो अगेन और डिपेंडेंसी का

50:41मतलब क्या होता है? उसकी जार फाइल डालना।

50:43तो मैं दोबारा अपने मेवन रिपोज़िटरी पे

50:44चलता हूं। और लेट्स से मैं लिखता हूं

50:46HBनेट। मुझे हबनेट चाहिए। और सबसे पहले

50:48मेरा लिंक आ जाएगा हबरनेट ओआरएम का हबरनेट

50:51कोर। मुझे यही चाहिए और फिर मुझे चूज़ करना

50:53पड़ेगा इसका वर्जन। अगेन मैं सबसे लेटेस्ट

50:55वर्जन नहीं जाना चाहता। ठीक है? थोड़ा सा

50:57पीछे चलते हैं। अगेन ये ऑप्शनल है। आप

50:59लेटेस्ट भी चूज़ कर सकते हो। थोड़ी बहुत

51:00वनेरेबिलिटी होती है। पर अच्छी प्रैक्टिस

51:02है। आप थोड़ा सा पहले का वर्जन लो। अगेन ये

51:04वाला ले लेते हैं मे 25 वाला ही 30 लोगों

51:06ने इसको लिया हुआ है जो कि बहुत कम है।

51:08ठीक है? ओके तो यहां पे जाते हैं 7.3.6

51:11फाइनल और हम नीचे जाते हैं। अगेन आपको मिल

51:14जाएगी मेवन की डिपेंडेंसी। इसको आपने किया

51:16कॉपी और आपने यहां पे इसको कर दिया पेस्ट।

51:18ये आपका कमेंट है। ये हमें नहीं चाहिए।

51:20ठीक है? और आप देख सकते हो। ठीक है? अब

51:22बाय डिफॉल्ट जैसे ही आपने लिखा कि आपकी

51:24डिपेंडेंसी आ गई होगी? बिल्कुल नहीं। जैसे

51:25आप पेस्ट करोगे ना ये बटन अपने आप यहां पे

51:28आ जाएगा कि भाई डिपेंडेंसी को सिंक कर लो।

51:30अभी आप देखो मेरे पास यहां पे दो ही

51:31डिपेंडेंसी है। एक माय सीक्वल एक Google

51:33प्रोटोकफ जो कि माय सीक्वल यूज़ करता है।

51:35जैसे ही मैं करूंगा इसे सिंक मेवन कहेगा

51:37रुको मैं इसे डाउनलोड करता हूं आपके लिए

51:39और इसने इसको डाउनलोड करना शुरू कर दिया

51:41इंटरनेट से। ठीक है? देखो एनालाइजिंग

51:42प्रोजेक्ट तो इसने इंटरनेट से डाउनलोड करा

51:44और मेरी देखो यहां पे जो रेड लाइन थी वो

51:46हट गई। यानी कि मेरी डिपेंडेंसी आ गई। और

51:48देखो मेरे पास कितनी सारी डिपेंडेंसीज

51:50यहां पे आ चुकी हैं। राइट? अगर मैं

51:52मैनुअली करता मेरे को कितना एफर्ट लगता।

51:54अब देखो मेरे पास कितनी सारी डिपेंडेंसी आ

51:55गई। कुछ जकार्ता की डिपेंडेंसी हैं। कुछ

51:57ग्लास फिश है, एक्लिप्स की है। बहुत सारी

52:00बहुत सारी डिपेंडेंसीज आ गई। राइट? तो

52:02मुझे एक बार देखना है इनकी हायरार्की क्या

52:03है? तो अगेन मैं मेवन पे जाऊंगा और यहां

52:05पे अपनी डिपेंडेंसी तो देखूंगा। तो मेरे

52:07पास दो हैं। एक तो माय सीक्वल करैक्टर और

52:08एक हाइबरनेट। यही दो चाहिए थी मेरे को।

52:10यहां पे मैंने दोनों का नाम लिखा हुआ है।

52:12माय सीक्वल के अंदर तो प्रोटोपॉफ था। पर

52:14हाइबरनेट इन सारी डिपेंडेंसीज पे फर्दर

52:16डिपेंड करता है। ये इनकी ट्रांजिटिव

52:18डिपेंडेंसीज हैं। इनफैक्ट अगर आप इनके

52:20अंदर जाओगे ना तो आपको और ट्रांजिटिव

52:22मिलेगी। देखो ये देखो अगर मैं इसको ओपन

52:24करूंगा तो इस पे डिपेंड करता है। इसको ओपन

52:25करूंगा तो इसको डिपेंड करता है। इसको ओपन

52:27करूंगा तो देखो ये फर्दर किसी और पे

52:29डिपेंड करता है। इसको ओपन करूंगा तो इसके

52:31अंदर ये सारी डिपेंडेंसीज हैं बहुत सारी।

52:33तो ये सब ट्रांजिटिव डिपेंडेंसीज हैं।

52:34मुझे इनसे मतलब नहीं है। मेरे को हबनेट

52:36चाहिए था। मुझे हबनेट मिल गया। हबनेट को

52:38जो चाहिए था वो उसको मिल गया ना। तो मेरे

52:40कोड में सारी एक्सटर्नल लाइब्रेरीज अपने

52:42आप इंस्टॉल हो गई। मुझे कुछ नहीं करना

52:44पड़ा। मुझे बस उसकी डिपेंडेंसी का नाम

52:46डालना पड़ा। तो देखो हमारा कितना काम आसान

52:48कर रहा है। मेन हमें कुछ भी नहीं करना पड़

52:50रहा। सिर्फ उस डिपेंडेंसी का मैं नाम

52:52डालता हूं और वो डाउनलोड कर लेता है और

52:53मुझे नाम भी याद नहीं करना पड़ता। मैं

52:55अपने मेवन रिपोजिटरी पे जाता हूं। उसका

52:57नाम सर्च करता हूं और उसका कोई भी वर्जन

52:59अच्छा सा उठाता हूं और उसको डाउनलोड कर

53:00लेता हूं। है ना? अगेन स्कोप यहां पे भी

53:02इसका कंपाइल है। वो सबका ज्यादातर कंपाइल

53:04ही रहता है कि कंपाइलेशन टाइम पे मुझे

53:06चाहिए होगा। ठीक है? तो यहां पे ऐसे मैं

53:08अपनी pm डॉट एक्सml फाइल को अच्छे से समझ

53:10चुका हूं। यहां पे डिपेंडेंसी का टैग है।

53:11राइट? अब ना अगर मैं जो मैंने लास्ट क्लास

53:14में अपनी स्प्रिंगbook की एप्लीकेशन बनाई

53:15थी उसका pm डॉट एक्सml खोलूं। ठीक है? तो

More Pom Tags

53:18वो ये रहा और अगर आपने अभी बनाई है तो भी

53:20आप खोल सकते हो। ये रहा पम। इसका पॉम डॉट

53:22एक्सml ना आपको थोड़ा सा बड़ा मिलेगा।

53:23राइट? क्योंकि ऑब्वियसली स्प्रिंग बूट ने

53:25अपनी खुद की कुछ चीजें डिपेंडेंसी यहां पे

53:27डाली होंगी। तो आप देखो अगेन ये तो

53:28प्रोजेक्ट स्ट्रक्चर है जो मैंने आपको

53:29बताया एक्सml स्कीमा। ये मॉडल वर्जन हो

53:31गया। यहां पे एक स्पेशल टैग है पेरेंट का।

53:33इसके बारे में अभी थोड़ी देर बात करते

53:34हैं। उसके अलावा अगेन आपकी ग्रुप आईडी

53:36आर्टिफेक्ट आईडी वर्जन हो गया। अब ये कुछ

53:38खाली टैग्स हैं। है ना? यहां पे कोई

53:40वैल्यूज़ नहीं है। इसको आप इग्नोर कर सकते

53:41हो। और यहां पे देखो प्रॉपर्टीज में उसने

53:43खुद से डाला हुआ है जावा वर्जन। है ना? तो

53:45आप इस जावा वर्जन को यूज़ कर सकते हो। हो

53:47उसने प्रॉपर्टी में डाल के रखा हुआ है कि

53:48कहीं आपको अगर यूज़ करना हो तो आप यहां से

53:50उसको निकाल सकते हो जावा प्रॉपर्टी फाइल

53:52से। अगेन देखो यहां पे हमारी डिपेंडेंसीज

53:55का टैग खाली नहीं है। पहले से ही हमारी दो

53:57डिपेंडेंसी उसने डाल के रखी हुई थी जब

53:59हमने स्प्रिंग इनिशलाइजर से प्रोजेक्ट को

54:01डाउनलोड किया था। एक है स्प्रिंग बूट

54:03स्टार्टर वेब एमवीसी। ये हेल्प करती है

54:05हमारे वेब एप्लीकेशनेशंस को बनाने के लिए।

54:07वेब एमवीसी को यूज़ करने के लिए और एक है

54:09स्प्रिंग बूट स्टार्टर वेब एमवीसी टेस्ट।

54:11तो बेसिकली टेस्ट केसेस के लिए। राइट? ये

54:13दोनों डिपेंडेंसी उसने हमें पहले से दी

54:15थी। तो अच्छा हुआ हमें बना बनाया टेंपलेट

54:17मिल गया है ना तो यहां पे स्प्रिंग

54:18इनिशलाइजर बहुत काम आता है क्योंकि आपको

54:20बनाया टेंपल्लेट मिल जाता है। ये पूरी

54:22डिपेंडेंसीज जो भी चाहिए वो आपको ऑलरेडी

54:24डाल के रख देता है। मेवन उसको सिंक कर

54:25देता है और एक्सटर्नल लाइब्रेरीज में आपका

54:27ये सब आ जाता है। तो बेसिकली अगर मैं इसके

54:28मेवन पे जाके देखूंगा तो देखो स्प्रिंग

54:30बूट स्टार्टर और स्प्रिंग बूट वेब एमवीसी

54:32और ये फर्दर अंदर से कुछ-कुछ डिपेंडेंसीज

54:34यूज़ करते होंगे। उसके अलावा मेरे को यहां

54:36पे दिखेगा एक बिल्ड टैग और ये एक्चुअली

54:38होता है मेरे प्लगइिंस का टैग। अब प्लगिंस

54:40को ना आप ऐसे मान सकते हो कि अभी के लिए

54:42ये जो मेरा मेवन है इसको अपनी लाइफ साइकिल

54:44को करने के लिए कंपाइल पैकेज वेरीफाई

54:46इंस्टॉल ये सब करने के लिए कुछ प्लगइिंस

54:48की जरूरत पड़ती है और वो सब प्लगिंस मैं

54:50यहां लिखता हूं। ठीक है? अगेन अभी हम आगे

54:52देखेंगे धीरे-धीरे और हम कौन सी प्लगइिंस

54:53को इंस्टॉल कर सकते हैं वगैरह-वगैरह। पर

54:55अभी वो इतना इंपॉर्टेंट नहीं है। पर यहां

54:57पे ना मुझे एक बहुत ही इंटरेस्टिंग टैग

54:58दिख रहा है जिसका नाम है पेरेंट टैग। ये

Parent POM & Super POM

55:00पेरेंट टैग क्या होता है? तो इसको समझाने

55:02के लिए ना मैं सबसे पहले अपने मेव एंड

55:04डेमो पे चलता हूं क्योंकि यहां पे कोई

55:05पेरेंट टैग नहीं है। तो सबसे पहले तो ऐसे

55:08समझो कि हमारी जो पोम डॉट एक्सML फाइल है

55:10ना वो इन्हहेरिटेंस को सपोर्ट करती है। तो

55:12सबसे पहले हमारा सबसे ऊपर होता है एक सुपर

55:14पोम। तो उसको आप बिल्कुल जावा के ऑब्जेक्ट

55:17क्लास की तरह मान सकते हो। जावा में एक

55:18ऑब्जेक्ट क्लास होती है व्हिच इज़ पेरेंट

55:19ऑफ़ ऑल क्लास। राइट? उसी तरीके से ना पोम्स

55:22में एक पेरेंट पॉम होता है जिसको हम बोलते

55:24हैं फिर सुपर पॉम। वो सबका पेरेंट है। हर

55:26पॉम अपने पेरेंट पॉम से ही इन्हहेरिट करता

55:29है। तो देखो यहां पे क्योंकि कोई पेरेंट

55:30मेंशन नहीं है कि इसका पेरेंट कौन है? तो

55:32बाय डिफॉल्ट इसका पेरेंट कौन हो गया?

55:34पेरेंट पॉम यानी कि सुपर पॉम। तो बिल्कुल

55:36सेम अगर आप जावा में कोई क्लास बनाते हो

55:37और आप कोई और क्लास इन्हहेरिट नहीं करते

55:39तो बाय डिफॉल्ट आप ऑब्जेक्ट क्लास को

55:41इन्हहेरिट कर ही रहे होते हो। राइट? तो

55:43बिल्कुल सेम कांसेप्ट है। अब यहां पे

55:45इन्हहेरिटेंस का कांसेप्ट क्यों है? देखो

55:47हमारा ना पोम यहां पे बहुत सिंपल दिख रहा

55:49है हमें हमें। है ना? लेकिन पोम में ना और

55:51भी बहुत सारी कॉन्फ़िगरेशंस की जरूरत होती

55:52है जो यहां पे हमें नहीं दिख रही। वह सब

55:54कॉन्फ़िगरेशंस आपके सुपर पॉम ने कर रखी

55:57होती हैं और अपने अंदर डाल रखी होती है और

55:59हमारा यह जो पोम है उनसे वह कॉन्फ़िगरेशंस

56:01को यूज़ कर सकता है। राइट? अगर वो सारी

56:03कॉन्फ़िगरेशन यहीं डाल देगा, तो हमारा पोम

56:05बहुत हैवी हो जाएगा। है ना? आप चाहो तो

56:08अपने इंटेलिजेंट के अंदर उस सुपर पॉम को

56:10देख सकते हो। कैसे? बहुत इजी तरीका है। आप

56:12अपने फॉर्म पे क्लिक करो। सबसे नीचे जाओ

56:14मेवन और यहां पे आपको दिखेगा शो इफेक्टिव

56:17पॉम। ठीक है? मुझे इस पे क्लिक करना है।

56:19तो देखो यहां पे इस फाइल का नाम है मेवन

56:20डेमो इफेक्टिव फॉर्म डॉट एक्सML। ये भी एक

56:22पोम फाइल है। पर ये डायरेक्टली मेरी पोम

56:24फाइल नहीं है। ये मेरे पोम की पेरेंट है।

56:26ये सुपर पोम है। ठीक है? तो देखो यहां पे

56:28कितनी सारी चीजें हैं। तो ये बेसिकली

56:30पेरेंट फाइल है मेरे उसकी मॉडल वर्जन

56:32ग्रुप आईडी ये सब तो सेम है जो मैंने यहां

56:34पे डिस्क्राइब किया था वो बिल्कुल सेम

56:35रहेगा। तो जो प्रॉपर्टीज बेसिकली यहां है

56:37वो यहां तो होंगी होंगी। बस कुछ स्पेशल

56:39प्रॉपर्टीज भी यहां पे होंगी। तो मॉडल

56:41वर्जन सेम है। है ना? और हमारा ये सब

56:43ग्रुप आईडी वगैरह सेम है। देखो यहां

56:45प्रॉपर्टीज भी सेम है क्योंकि वो यहां पे

56:46भी थी। ठीक है? ये रही प्रॉपर्टीज। ठीक

56:49है? अलग क्या है? देखो ये डिपेंडेंसी भी

56:51सेम है। माय सीक्वल और हबनेट हमने डाला था

56:53तो उसने अपने पेरेंट फॉर्म के अंदर भी वो

56:54डाल दिया। माय सीक्वल हबरनेट। ओके? उसके

56:56बाद यहां पे देखो एक टैग आता है

56:58रिपॉजिटरीज का जो यहां पे आपको नहीं

56:59मिलेगा। क्या आपको वो दिख रहा है? बिल्कुल

57:01नहीं दिख रहा। ठीक है? ये टैग क्या है?

57:02अभी बताता हूं आपको थोड़ी देर में। इसके

57:04अलावा और भी बहुत सारी चीजें आएंगी।

57:06प्लगइन रिपॉजिटरीज, कुछ बिल्ड सिस्टम्स,

57:08कुछ रिसोर्सेज, टेस्ट रिसोर्सेज, प्लगइन

57:10मैनेजमेंट्स वगैरह-वगैरह। ये अंदर से देखो

57:12बहुत सारी चीजें यूज़ कर रहा होता है।

57:14जिसकी हमें डायरेक्टली जरूरत नहीं पड़ती।

57:16इसलिए हम अपना फॉर्म सिंपल रखते हैं। देखो

57:18बिल्कुल सिंपल हमें यहां पे हम भाई बस तो

57:20हम बस यहां पे वही लिखते हैं जिसकी

57:22डायरेक्टली हमें जरूरत पड़ती है। इनफैक्ट

57:24बाकी चीजें हम सीधा पेरेंट फॉर्म से उठा

57:26लेते हैं। अगर हमें इनमें कुछ चेंज करना

57:28है जैसे मान लो यहां पे एक टैग था

57:30रिपोजिटरीज का रिपोजिटरीज का ये रहा। ठीक

57:33है? अगर बाय डिफॉल्ट मुझे इस टैग को चेंज

57:36करना है तो मैं रिपॉजिटरीज के टैग को यहां

57:38बना सकता हूं। जैसे मैंने डिपेंडेंसीज के

57:40ऊपर बनाता हूं। लेट्स से यहां रेपोजिटरीज़।

57:43ठीक है? कुछ इस तरीके से। तो यहां पे मैं

57:45उस टैग को ओवराइड कर सकता हूं। तब मेरा ये

57:47वाला रिपोजिटरीज का टैग यूज़ होगा ना कि ये

57:49वाला। अब मैं वो क्यों करना चाहूंगा? उसके

57:51कुछ रीज़ंस हो सकते हैं। अगेन रिपॉजिटरीज

57:53टैग क्या होती है वो आपको समझना पड़ेगा। वो

57:54हम थोड़ी देर में देखेंगे। पर हो सकता है

57:56मैं बदलना चाहता हूं कि मेरा रिपोज़िटरीज

57:58कहां से फैच हो रही है। तो अगर आपको शॉर्ट

57:59में बता दूं तो रिपॉजिटरी टैग बताता है कि

58:01ये जो मैं अपनी डाउनलोड कर रहा हूं कॉम.

58:03सीक्वल हबरनेट ये मेरा मेवन कहां से

58:06डाउनलोड करना है। मैंने कह दिया इंटरनेट

58:07से डाउनलोड हो रहा है। पर कहां से? तो अगर

58:08आप देखोगे ना रिपोजिटरी टैग में आपका नाम

58:11लिखा होगा सेंट्रल रिपॉजिटरी और उसका

58:13यूआरएल लिखा होगा। तो बेसिकली मेवन इस

58:15यूआरएल पे जाता है जिसका नाम है मेवन की

58:17सेंट्रल रिपोजिटरी। एक ये बहुत बड़ी

58:19रिपोजिटरी या बहुत बड़ा पैकेज बना होता है

58:21जहां से मेवन सारी चीजें डाउनलोड करता है।

58:22तो क्योंकि वो वहां से सब कुछ डाउनलोड कर

58:24लेता है। तो क्योंकि वो वहां से सब कुछ

58:27डाउनलोड करता है तो मेरे को वो सारा

58:28रिजल्ट अपने एक्सटर्नल लाइब्रेरीज के अंदर

58:29दिख जाता है। पर आप मान लो ऐसा हो सकता

58:32है। मैं नहीं चाहता कि मैं सेंट्रल

58:33लाइब्रेरी से सब कुछ डाउनलोड करूं या मेवन

58:35की सेंट्रल रिपोजिटरी से। मैंने अपनी खुद

58:37की कंपनी के अंदर अपनी खुद की एक

58:38रिपोजिटरी बना रखी है। वहां से मैं

58:40डाउनलोड करना चाहता हूं। वहां पे मैं जार

58:41फाइल्स रखता हूं। तो मैं वो भी कर सकता

58:43हूं। ठीक है? वो थोड़ी देर में देखेंगे हम

58:44कैसे करते हैं। पर आई होप आपको समझ आ गया

58:47होगा इफेक्टिव फॉर्म का कांसेप्ट। अब आप

58:49देखो क्योंकि इसका कोई पेरेंट नहीं था।

58:51इसलिए इसका पेरेंट सीधा इफेक्टिव फॉर्म

58:52था। पर हमारा जो डेमो प्रोजेक्ट था जो

58:55हमने अपना स्प्रिंग बूट का प्रोजेक्ट

58:57बनाया था उसमें अपने आप एक पेरेंट टैग लगा

58:59हुआ है। यहां पे ना इसका मतलब खुद का

59:01पेरेंट है इसके पास। तो इसका एक पेरेंट

59:03होगा। हो सकता है उसका भी कोई पेरेंट हो।

59:05पर ऐसे करते-करते लास्ट में आपको सुपर पॉम

59:07ही मिलेगा। राइट? अब यहां पे ना कई बार दो

59:10चीजों में कंफ्यूज कर देते हैं लोगों को।

59:12एक तो है सुपरप और एक है इफेक्टिव पॉम।

59:16ठीक है? इफेक्टिव पॉम। अब ना मैंने यहां

59:18पे इसको एक साथ यूज़ किया। पर आप अगर

59:20बिल्कुल अंदर जाओगे तो याद रखना सुपर पॉम

59:22का जनरली मतलब होता है पेरेंट ऑफ ऑल पोम।

59:25ठीक है? ये सबका पेरेंट होगा ही होगा। और

59:27इफेक्टिव पॉम का जनरली मतलब होता है जो

59:29आपका मेवन फाइनली यूज़ करेगा। ठीक है? तो

59:32मेवन फाइनली यूज दिस।

59:35ठीक है? यूज करेगा मतलब जब आपके प्रोजेक्ट

59:37को बिल्ड करने के लिए या कोई भी काम करने

59:38के लिए जो मेवन पोम यूज करेगा वो आपका

59:40इफेक्टिव पॉम होगा और हो सकता है आपका

59:42इफेक्टिव फॉर्म के अंदर आपका जो खुद का

59:44फॉर्म है वो भी और आपके सुपर पॉम में जो

59:46भी लिखा है वो सारी चीजें भी एक साथ उठा

59:48के डाल दें। तो कहीं ना कहीं वो भी आपका

59:49सुपर पॉम ही बन जाएगा। ठीक है? तो आप इन

59:51दोनों को एक साथ यूज़ कर सकते हो। ऊपर अगर

59:53आप बिल्कुल डेप्थ में जाना चाहते हो तो

59:54सुपर पॉम पेरेंट है ऑल पम का इफेक्टिव पॉम

59:57मेवन जो फाइनली यूज़ करता है तो इसमें आपका

59:59खुद का पॉम प्लस सुपर पॉम की सारी चीजें

1:00:01अगर आप सुपर पॉम से सब कुछ करते हो वो सब

1:00:04मिलाकर के इफेक्टिव पॉम के अंदर आ जाता है

1:00:06पर अगेन इतना फर्क नहीं पड़ता इन चीजों से

1:00:08तो यहां पे मैं बता रहा था कि इसका खुद का

1:00:10एक पेरेंट है जिसका नाम है ऑर्क डॉट

1:00:12स्प्रेम फ्रेमवर्क डॉटboot तो अगर मैं

1:00:13कंट्रोल या कमांड दबाऊंगा और मैं इस पे

1:00:15क्लिक करूंगा तो मैं इसके अंदर जा सकता

1:00:16हूं तो देखो ये रहा मेरा ये वाला पेरेंट

1:00:18अब देखो इसके पास भी अपना खुद का पेरेंट

1:00:20है तो इसके अगर मैं अंदर जाऊं तो देखो ये

1:00:22इसके पास पास कोई पेरेंट नहीं है। यानी कि

1:00:24इसका पेरेंट कौन हो गया? हमारा सुपर पॉम।

1:00:26ठीक है? तो सुपर पॉम के अंदर कुछ स्प्रिंग

1:00:28बूट डिपेंडेंसीज नाम का पोम हुआ। उसके

1:00:31अंदर स्प्रिंग बूट स्टार्टर पेरेंट नाम का

1:00:32पोम हुआ और फाइनली हुआ हमारा पॉम जिसने

1:00:35स्प्रिंग बूट स्टार्टर पेरेंट को भी

1:00:37इन्हहेरिट किया हुआ है। राइट? तो ये सब

1:00:39इनकी हायरार्की होती है। इतनी बड़ी

1:00:41हायरार्की क्यों रही होगी? अब हो सकता है

1:00:42हमारे पोम ने कुछ चीज डिक्लेअर की। कुछ

1:00:44चीजें इसने डिक्लेअर की। राइट? कुछ चीजें

1:00:46इसके पेरेंट ने डिक्लेअर की एंड एंड कुछ

1:00:48चीजें हमारे पेरेंट फॉर्म के अंदर आती है।

1:00:49ये बिल्कुल सेम है जैसे आप जावा में

1:00:51इनहेरिटेंस को यूज़ करते हो। हो राइट? आप

1:00:52मल्टीलेवल इन्हहेरिटेंस क्यों बनाते हो?

1:00:54एक ही रीज़न होता है कि किसी स्टेज पे आपको

1:00:56अपने पेरेंट की कुछ चीजों को ओवराइट करना

1:00:58होता है। राइट? तो इसलिए आप मल्टीलेवल

1:00:59इनहेरिटेंस तक जाते हो। तो सेम चीज यहां

1:01:01पे है। ठीक है? तो ओके भैया ये तो हमें

1:01:03समझ आ गया। अब एक इंटरेस्टिंग चीज मैंने

Central & Local Repository

1:01:06आपको बताया कि मेवन ये सब डिपेंडेंसीज़

1:01:08कहां से डाउनलोड कर रहा है? तो मैंने आपको

1:01:09बताया था अगर हम अपने इफेक्टिव फॉर्म में

1:01:10जाएं। मैं वापस से मेवन डेमो पे चलता हूं।

1:01:12ठीक है? जो हमारा खाली मेवन प्रोजेक्ट था

1:01:14उस पे मैं जाऊंगा मेवन के अंदर और मैं

1:01:16करूंगा शो इफेक्टिव फॉर्म। हां। तो यहां

1:01:19पे एक रिसोर्सेज का रिपॉज़िटरीज का टैग

1:01:21हुआ। होगा सॉरी उसके अंदर एक रिपॉजिटरी

1:01:23लिखी होगी कि मेरी कहां से ये सारी चीजें

1:01:26डाउनलोड हो रही हैं। तो अभी बाय डिफ़ॉल्ट

1:01:27वो सेंट्रल रिपोज़िटरी से डाउनलोड हो रही

1:01:29हैं। और ये रहा उसका यूआरएल। ठीक है? तो

1:01:31मैं बोल सकता हूं एक सेंट्रल रिपोज़िटरी

1:01:33बना रखी है मेवन ने जिसमें थाउजेंड्स एंड

1:01:35थाउजेंड्स ऑफ़ जार फाइल्स पड़ी होंगी और हम

1:01:37वहां से कोई भी जार फाइल जो हमें चाहिए वो

1:01:38डाउनलोड कर सकते हैं। हमें बस उसका नाम,

1:01:40आर्टिफैक्ट आईडी, ग्रुप आईडी और वर्जन ये

1:01:42सब बताना होता है। उसके हिसाब से वो उनको

1:01:43डाउनलोड कर लेता है। बहुत बढ़िया। पर ना

1:01:45मेवन दो तरह की रिपोज़िटरीज यूज़ करता है।

1:01:48अगर मैं आपको बताऊं तो उसको हम यहां लिखते

1:01:50हैं। मेवन

1:01:52यूज टू रेपोजिटरीज। कौन-कौन सी? देखो एक

1:01:56तो है ऑब्वियसली हमारी मेवन सेंट्रल जो

1:01:58अभी हमने देखी मेवन सेंट्रल और दूसरी है

1:02:00हमारी लोकल रिपोजिटरी। अब ये लोकल

1:02:02रिपोजिटरी कौन सी है? अब देखो ये बहुत

1:02:04इंटरेस्टिंग है। मेवन क्या करता है? आपके

1:02:07कंप्यूटर के अंदर एक फोल्डर बनाता है M2

1:02:10के नाम से। ये एक हिडन फोल्डर होता है।

1:02:12आपका ये मैक में रूट लेवल पे एक्सिस्ट

1:02:14करेगा। और अगर आप Windows में जाओगे तो

1:02:15शायद यूज़र्स के अंदर आपका जो भी यूजर बना

1:02:18हुआ है उसके अंदर जाके एक्सिस्ट करेगा। आप

1:02:20सर्च कर सकते हो। ठीक है? अगर आप इस M2

1:02:22फोल्डर के अंदर जाओगे ना उसके अंदर ये एक

1:02:24फोल्डर बनाता है जिसका नाम होता है

1:02:26रेपोजिटरीज। ठीक है? और उसके अंदर वो सारी

1:02:28रेपोजिटरी स्टोर करता रहता है जो भी आप

1:02:30इंटरनेट से डाउनलोड करते हो। तो कहने का

1:02:32मतलब ये कि जब भी जैसे मैंने यहां पे लिखा

1:02:34माय सीक्वल कनेक्टर और या फिर मैंने यहां

1:02:35पे लिखा हबरनेट सबसे पहले चेक करेगा कि

1:02:38क्या मेरे लोकल सिस्टम के अंदर ये

1:02:40डिपेंडेंसी मौजूद है। अगर

1:02:41[गला साफ़ करने की आवाज़] ये लोकल के अंदर

1:02:42मौजूद है तो वो वहां से फैच कर लेगा। और

1:02:44लोकल में कहां से? मैंने कहा था ना ये जो

1:02:47m2 फोल्डर के अंदर रिपोजिटरीज का फोल्डर

1:02:49है उसके अंदर जाकर के देखता है कि क्या

1:02:50मेरे पास पहले से ही डिपेंडेंसी मौजूद है।

1:02:53अगर है तो वहीं से यूज़ कर लेगा और अगर

1:02:55नहीं है तब जाकर के सेंट्रल रिपोज़िटरी से

1:02:57उसे डाउनलोड करेगा बेसिकली यहां से मेवन

1:02:59सेंट्रल से। ठीक है? पर जब वो मेन सेंट्रल

1:03:02से उसे डाउनलोड कर रहा होगा ना तो वो दो

1:03:04काम करेगा। एक तो डाउनलोड करके आपको यहां

1:03:06पे शो कर देगा एक्सटर्नल लाइब्रेरीज में

1:03:07और आपकी वो M2 फोल्डर के अंदर भी डाल

1:03:10देगा। राइट? उसे कैश करने के लिए। अब इसको

1:03:12कैश करने का फायदा क्या होता है? कि जब आप

1:03:14अपने सेकंड टाइम अपने प्रोजेक्ट को बिल्ड

1:03:16करो तो आपको वो सारी फाइल दोबारा से

1:03:18इंटरनेट से डाउनलोड ना करनी पड़े। आप सीधा

1:03:20अपने लोकल फोल्डर से वो फाइल उठा सको। या

1:03:22राइट? इसलिए मैंने आपको बताया जो हमारा

1:03:24फर्स्ट बिल्ड होगा ना वो स्लो होगा। जब तक

1:03:26आपका कुछ भी एक्सिस्ट नहीं करता होगा आपके

1:03:27लोकल के अंदर तो बिल्ड थोड़ा स्लो होगा।

1:03:29लेकिन जैसे आपकी कैश हो जाएंगी कुछ

1:03:31डिपेंडेंसीज तब आपका बिल्ड फास्ट हो

1:03:33जाएगा। अब वो एक या दो डिपेंडेंसी आपको

1:03:35पता नहीं लगेगा। अब मान लो 100 200

1:03:36डिपेंडेंसीज हैं। तब वो 100 200

1:03:38डिपेंडेंसी डाउनलोड करने के लिए इंटरनेट

1:03:39से थोड़ा सा टाइम लग सकता है। राइट? पर

1:03:40अगर आप लोकली कैश करोगे तो बिल्कुल टाइम

1:03:42नहीं लगेगा। बिल्ड बहुत फास्ट होता जाएगा।

1:03:44इसलिए मेवन इन सारी चीजों को लोकल

1:03:45रिपोज़िटरी के अंदर भी रखता है। दूसरी चीज

1:03:48आप जब खुद की जार फाइल बनाते हो तो जैसे

1:03:50मैंने बोला कि अगर मैं जाकर के एक लाइफ

1:03:53साइकिल में अपना कर दूं यहां पे पैकेज।

1:03:55ठीक है? तो मेरी खुद की एक जार फाइल बन

1:03:57जाएगी। ठीक है? जिसका नाम होगा अ ये रहा

1:04:00मेवन डेमो 1.0 Snapshot डॉट जार। ठीक है?

1:04:03तो अब मैंने आपको बताया था ना इस जार फाइल

1:04:04का नाम फोकस करना। तो देखो मेरी जार फाइल

1:04:06का नाम वही होता है जो पहली बात तो पहले

1:04:09आएगा मेवन डेमो जो मेरी आर्टिफेक्ट आईडी

1:04:11का नाम है। ठीक है? माइनस वन अह मेरे

1:04:13वर्ज़न का नाम 1.0 स्नैपशॉट डॉट जार 1.0

1:04:16snapshot डॉट जार राइट तो ये दोनों नाम

1:04:18हमेशा सेम रहेंगे हमेशा ऐसे ही होता है

1:04:20आर्टिफेक्ट आईडी माइनस वर्जन आईडी तो नाम

1:04:22हमेशा सेम होता है आर्टिफैक्ट आईडी फिर

1:04:23वर्जन आईडी ठीक है और ये मेरी जो जार फाइल

1:04:26है ये जाकर के भी वो स्टोर करता है मेरे

1:04:28लोकल M2 कैश के अंदर राइट राइट तो ये दो

1:04:31काम करता है एक तो जो भी मैं इंटरनेट से

1:04:33डाउनलोड कर रहा हूं उसको कैश करता है और

1:04:34जो मैं खुद की जार फाइल बनाता हूं अपने

1:04:36प्रोजेक्ट की वो भी मेरे M2 के अंदर स्टोर

1:04:38हो जाती है यानी कि मेरे लोकल कैश के अंदर

1:04:41अभी मैं मैं ये लोकल एक फोल्डर आपको खोल

1:04:43के दिखाता हूं। उससे पहले मैं आपने कहा था

1:04:45ना कि किसी भी जार फाइल का नाम क्या होता

1:04:47है? आर्टिफ आईडी और फिर वर्जन आईडी। तो

1:04:49अगर आप ध्यान से देखो ये रहा हमारा माय

1:04:50सीकल कनेक्टर की डिपेंडेंसी और इसका

1:04:52आर्टिफेक्ट आईडी है माय सीक्वल कनेक्टर j

1:04:54और वर्जन है 9.5.0 और सेम टाइम पे आप इसकी

1:04:58डिपेंडेंसी का नाम देखो माय सीक्वल

1:05:01कनेक्टर जे 9.5.0

1:05:03ठीक है? तो बिल्कुल सेम नाम होता है

1:05:05आर्टिफेक्ट आईडी और वर्जन आईडी। इनफैक्ट

1:05:07इसीलिए हमारी ये जो थर्ड पार्टी

1:05:09लाइब्रेरीज होती है इनको हम कभी कबभार

1:05:11आर्टिफेक्ट्स भी बोल देते हैं कि हम अपने

1:05:12आर्टिफेक्ट्स को डाउनलोड कर रहे हैं

1:05:14क्योंकि इनका नाम आर्टिफेक्ट से शुरू होता

1:05:15है तो आर्टिफेक्ट्स डाउनलोड कर रहे हैं।

1:05:17ठीक है? तो अब एक काम करते हैं। मैं आपको

1:05:18अपना लोकल M2 फोल्डर खोल के दिखाता हूं।

1:05:20हां जी। तो आप देख सकते हो ये है मेरा

1:05:22लोकल M2 फोल्डर। अब देखो क्योंकि हिडन

1:05:24फोल्डर है तो मैक के अंदर आपको पता है

1:05:25कमांड, शिफ्ट और डॉट करके आप उसको एक्सेस

1:05:27कर सकते हो। अब वैसे ही विंडो में भी जैसे

1:05:29ही आप हिडन फोल्डर को एक्सेस करते हो वैसे

1:05:30आप कर सकते हो। आप अपने M2 फोल्डर के अंदर

1:05:32जाओ और वहां पे आप देखोगे रिपॉजिटरी करके

1:05:34एक आपका डायरेक्टरी बनी होगी। राइट? तो

1:05:37यही काम आप ऑब्वियसली टर्मिनल के थ्रू भी

1:05:38कर सकते हो। अब देखो अपने टर्मिनल पे भी

1:05:40अगर आप सीडी करो अब क्योंकि रूट फोल्डर है

1:05:42तो मुझे ऐसे एक्सेस करना पड़ेगा MM2 तो मैं

1:05:45m2 फोल्डर के अंदर आ गया। एलएस करूंगा तो

1:05:46मेरे पास यहां पे रिपॉजिटरी है। ठीक है?

1:05:48तो मैं यहां पे रिपॉजिटरी फोल्डर के अंदर

1:05:50जा सकता हूं। और मुझे यहां पे मिल जाएंगे

1:05:52वो सारी फाइल्स जो मेरे जो मेरे मेवन ने

1:05:56यहां पे कैश करके रखी हुई हैं। ठीक है? अब

1:05:58अगेन ये सारी फाइल्स भी फोल्डर स्ट्रक्चर

1:06:00से अरेंज हैं। देखो कॉम डॉट उसके अंदर भी

1:06:03माय सीक्वल डॉट माय सीक्वल कनेक्टर। ठीक

1:06:05है? तो मुझे माय सीक्वल कनेक्टर मिल गया।

1:06:07तो बेसिकली ये जो मेरा माय सीक्वल कनेक्टर

1:06:09था कॉम डॉट माय सीक्वकल कनेक्टर माय

1:06:11सीक्वल कनेक्टर जे वो यहां पे पड़ा है।

1:06:12इसके अंदर Mys सीक्वल ये रहा Mys सीक्वल

1:06:15कनेक्टर जे। राइट? तो अगेन अगर मैं अपने

1:06:17प्रोजेक्ट को दोबारा बिल्ड करूंगा तो मेरा

1:06:19माय सीक्वल कनेक्टर इंटरनेट से डाउनलोड ना

1:06:20हो करके मेरे लोकल रिपॉज़िटरी से फैच हो

1:06:22जाएगा। राइट? तो ये काम होता है। इनफैक्ट

1:06:25मेरे पास एक तीसरी तरह की रिपोजिटरी भी हो

1:06:28सकती है। जैसे मैंने बोला एक मेवन सेंटर

1:06:30है, एक लोकल है। तो कभी कबभार मैं एक और

1:06:32तरह की रिपॉजिटरीज यूज़ कर सकता हूं जिसको

1:06:34मैं बोलता हूं अदर रिमोट रिपॉजिटरीज। अदर

1:06:36रिमोट। ठीक है? अब जैसे मेवन सेंट्रल भी

1:06:38एक रिमोट रिपोज़िटरी है। राइट? और वो तो

1:06:40मेवन सेंट्रल के अंडर आती है। तो उसको तो

1:06:41मैं रिमोटली यूज़ करता हूं। वैसे ही अदर

1:06:43रिमोट रिपॉज़िटरीज क्या हो सकती है? अब मान

1:06:45लो हम एक कंपनी में काम करते हैं जहां पे

1:06:47मेवन प्रोजेक्ट्स चलते हैं। लेट्स से हम

1:06:48स्प्रिंग बूट पे काम करते हैं और उस पे

1:06:50हमें बहुत सारी डिपेंडेंसी की जरूरत पड़ती

1:06:51है। तो या तो हम मेवन सेंट्रल से

1:06:53डायरेक्टली उन डिपेंडेंसी को डाउनलोड

1:06:54करें। राइट? या फिर हमारे पास एक कंपनी

1:06:56वाइट प्राइवेट रिपोजिटरी बनी हो जो रिमोट

1:06:58रिपोजिटरी हो। हम वहां से भी डाउनलोड कर

1:07:00सकते हैं। अब इसके दो रीज़ंस हैं। एक तो

1:07:02कुछ रिपोजिटरीज ना कंपनीज़ में प्राइवेट

1:07:04होती है। कुछ जार फाइल्स प्राइवेट होती

1:07:06हैं। राइट? कुछ मैंने इंटरनल लाइब्रेरीज

1:07:08बना रखी हैं अपनी कंपनीज़ के लिए। वो

1:07:09प्राइवेट लाइब्रेरीज हैं। वो मेरी

1:07:10प्राइवेट है। है ना? वो मेरे को मेवन

1:07:12सेंट्रल पे नहीं मिलेंगी। ना ही मैं उसको

1:07:13पब्लिकली कहीं डालना चाहता हूं। तो मैं

1:07:15उनको क्या करूंगा? अपनी कंपनी की रिमोट

1:07:17रिपोजिटरी पर रख दूंगा। राइट? और वहां से

1:07:19अपने जार को या अपने आर्टिफेक्ट्स को

1:07:20डाउनलोड करूंगा। राइट? और दूसरा रीजन है

1:07:22कि मेवन सेंट्रल क्योंकि एक ओपन

1:07:24रिपोजिटरीज हैं। उसमें बहुत सारी

1:07:26रिपॉजिटरीज वनरेबल हो सकती है। राइट? बहुत

1:07:28सारी रिपोजिटरीज में बग हो सकते हैं। बहुत

1:07:30सारी एरर प्रोन हो सकती है। तो मैं नहीं

1:07:32चाहता मैं उन्हें डायरेक्टली यूज़ करूं।

1:07:33कभी कबभार मेरे को सिक्योरिटी थ्रेट भी हो

1:07:35सकता है। है ना? उस केस में मैं अपनी

1:07:36कंपनी वाइड रिपॉजिटरी यूज़ करूंगा। जहां पे

1:07:38मुझे पता है सेफ स्पेस है वहां पे वही सब

1:07:41जार फाइल्स या आर्टिफेक्ट्स रखे होंगे जो

1:07:44ट्राइड एंड टेस्टेड है। राइट? तो ये भी एक

1:07:45रीज़न हो सकता है। तो अगर मान लो मुझे चेंज

1:07:48करना है कि मेरा मेवन कहां से रिपोजिटरीज

1:07:50को डाउनलोड करेगा? तो बाय डिफॉल्ट तो वो

1:07:52डाउनलोड करेगा सेंट्रल रिपोजिटरी से जो कि

1:07:54मेरे इफेक्टिव फॉर्म में डिक्लेयर्ड है।

1:07:55पर मैं इसको चेंज कर सकता हूं अपने

1:07:57रिपॉजिटरी टैग को ओवराइड करके। तो यहां पे

1:07:59मैं लिखूंगा रिपोजिटरीज और यहां पे आ

1:08:02जाएगा मेरा रिपॉजिटरी। और इसमें मुझे दो

1:08:04चीजें डिफाइन करनी है। एक तो आईडी आएगी

1:08:06आईडी और एक आ जाएगा लेट्स से यूआरएल।

1:08:09यूआरएल कुछ इस तरीके से। तो अब आईडी में

1:08:12मैं अपनी कोई भी आईडी रख सकता हूं। लेट्स

1:08:14से मेरी कंपनी की कोई रेपोज़िटरी होगी। ठीक

1:08:16है? कंपनी रेपो रख दिया मैंने अभी के लिए।

1:08:18ठीक है? और उस रिमोट रेपोज़िटरी का लेट्स

1:08:20से कोई यूआरएल होगा। अब जैसे वो हो सकता

1:08:21है https डॉट लेट्स से रेपो डॉट coderm.

1:08:28ठीक है? तो लेट्स से स्लैश मेवन। तो मान

1:08:30लो यहां पे मैंने अपनी वेवन रिपोजिटरीज

1:08:32रखी हुई हैं। तो मैं इसको ऐसे ओवराइड कर

1:08:33सकता हूं। अब जब मैं इसको रन करूंगा तो वो

1:08:35यहां से फच करने की कोशिश करेगा ना कि

1:08:36मेरी सेंट्रल से। अब क्योंकि ये एक्सिस्ट

1:08:38नहीं करता तो अगेन मुझे एरर आ जाएगा। तो

1:08:40इसको मैं हटा सकता हूं या फिर अभी के लिए

1:08:41इसको मैं कमेंट करके छोड़ देता हूं यहां

1:08:42पे। ठीक है? तो ताकि जब मैं प्रोजेक्ट

1:08:45शेयर करूं तो आपको यहां पे दिखे कि मैं

1:08:46इसको भी ओवराइड कर सकता हूं। अब देखो हमें

1:08:49समझ आ गया होगा कि हमारा कंप्लीट फ्लो

1:08:51क्या होता होगा। जब हम पोम के साथ काम

1:08:53करते हैं। ठीक है? तो हमारा कंप्लीट फ्लो

1:08:56रेपोजिटरी को डाउनलोड करने का कुछ ऐसा

1:08:58दिखता होगा कि सबसे पहले हमारा जो मेवन है

1:09:00वो रीड करेगा पोमट एक्सml फाइल कि हमें

1:09:03कौन सी कॉन्फ़िगरेशन को कौन सी कौन सी

1:09:05डिपेंडेंसी को डाउनलोड करना है। ठीक है?

1:09:07उसके बाद वो कहां चेक करेगा उस डिपेंडेंसी

1:09:08को? सबसे पहले चेक करेगा हमारे लोकल

1:09:10रिपॉजिटरी में। कि हमारे पास क्या है?

1:09:11लोकली वो एक्सिस्ट करती है। और वो कहां

1:09:13चेक करेगा? हमारे M2 फोल्डर के अंदर। ठीक

1:09:16है? इनफैक्ट M2 के M2 के अंदर भी एक

1:09:18रिपोज़िटरी फोल्डर है। उसके अंदर जाकर के

1:09:21वो चेक करेगा। अगर उसको वहां से मिल गया

1:09:23तो वो यहां से यूज़ कर लेगा। अगर वहां से

1:09:25नहीं मिला तो यहां पे लिख देता हूं चेक

1:09:27लोकल रेपोजिटरी फर्स्ट।

1:09:30तो अगर लोकली उसको वहां से मिल गया तो

1:09:32वहां से चेक करेगा। नहीं तो वो चेक करेगा

1:09:34आपकी मेवन सेंट्रल रेपो को कुछ इस तरीके

1:09:38से। ठीक है? और हो सकता है आपने इसको

1:09:40ओवराइड किया हो और आप चाहते हो मेरी कंपनी

1:09:42वाइड रेपो यूज़ हो तो यहां से आप उसको

1:09:43रिप्लेस कर सकते हो आपकी जो रिमोट

1:09:44रिपोजिटरी है उसके यूआरएल से। ठीक है?

1:09:47इनफैक्ट जब वो सेंट्रल रेपोजिटरी से

1:09:49डाउनलोड कर भी लेगा तो वो स्टोर करेगा

1:09:51डाउनलोडेड

1:09:52जार इन लोकल ये भी वो करता है राइट ताकि

1:09:56वो उसे कैश कर सके ओके इनफैक्ट अगर मैं

1:09:59आपको एक और इंटरेस्टिंग चीज दिखाऊं मैं

1:10:01अपने लोकल M2 फोल्डर में जाऊं और अपनी

1:10:02सारी रिपोज़िटरी डिलीट कर दूं तो मूव टू

1:10:06बिन देखो मैंने सारी रिपॉज़िटरी डिलीट कर

1:10:08दी। अब मेरे सारे प्रोजेक्ट्स चलने बंद हो

1:10:10जाएंगे क्योंकि वो देखो ये प्रोजेक्ट

1:10:11एनालाइज कर रहा है और ये कहेगा ये सारी

1:10:13डिपेंडेंसी तो है ही नहीं तो आप देखो

1:10:14एक्सटर्नल लाइब्रेरी के अंदर जाओगे तो

1:10:16सारी खत्म देखो मैंने यहां पे माय सीक्वल

1:10:18हबनेट डाली थी वो सब चली गई सिर्फ ओपन jडी

1:10:20के रह गया जो मेरी जावा की है। ठीक है? तो

1:10:22मुझे दोबारा इंस्टॉल करना पड़ेगा और इस

1:10:24बार ये इंटरनेट से डाउनलोड होगी और मेरे

1:10:26इस फोल्डर के अंदर जाकर के कैश हो जाएंगी।

1:10:28ठीक है? सेम तरीके से अगर मैं अपने

1:10:30स्प्रिंग बूट वाले प्रोजेक्ट में भी जाऊं

1:10:32तो यहां पे भी देखो प्रोजेक्ट मेरा खाली

1:10:33हो चुका होगा। सिर्फ ओपन जेडीके रह गया।

1:10:35बाकी ये सारी डिपेंडेंसीज मेरी हट चुकी

1:10:37हैं। ठीक है? तो एक काम करते हैं अपने

1:10:38मेमन डेमो को करते हैं जाकर के सिंक। तो

1:10:42इसको थोड़ा सा टाइम लेने दो।

1:10:46तो देखो यहां पे थोड़ा टाइम लग रहा है

1:10:47क्योंकि ये सारा इंटरनेट से डाउनलोड करने

1:10:48की कोशिश कर रहा है। डाउनलोड प्लगइंस फॉर

1:10:50मेवन डेमो। और थोड़ा सा टाइम लेगा ये।

1:10:54ओके। यहां पे थोड़ा अनरिजॉल्व डिपेंडेंसी

1:10:55का इशू आ गया। क्यों? क्योंकि हो सकता है

1:10:57कुछ डिपेंडेंसी अभी भी ये मेरे लोकल से

1:10:59फेच करने की कोशिश कर रहा हो। उसके लिए आप

1:11:01यहां पे सिंक ऑल मेवन पे मत जाओ। रीलोड ऑल

1:11:03मेवन प्रोजेक्ट पे जाओ कि स्टार्टिंग से

1:11:05रीलोड कर। मुझे सिंक नहीं करना। ठीक है?

1:11:07तो थोड़ा टाइम लेगा ये। और देखो

1:11:12और ये हो गया। इसने सारी एनालाइज़ कर ली।

1:11:14सारी डिपेंडेंसीज़ डाउनलोड कर ली। और देखो

1:11:17मैं दोबारा से एक्सटर्नल पे जाऊंगा। तो

1:11:19मेरे पास सारी डेमो सारी लाइब्रेरीज़ अपनी

1:11:21वापस आ गई। इनफैक्ट मैं उसको यहां पे भी

1:11:23चेक कर सकता हूं। My सीकल कनेक्टर

1:11:24हाइबरनेट ये देखो। ये देखो आ गई। सेम

1:11:27तरीके से मैं अपने जो ये वाली डिपेंडेंसी

1:11:29थी ये भी देखो मेरी वापस आ गई।

1:11:32ठीक है? इनफैक्ट अगर मैं वापस से अपने

1:11:34रेपोजिटरी फोल्डर में जाऊंगा तो देखो मेरे

1:11:36पास वापस से जो जो मैंने डिलीट की थी वो

1:11:38सारी वापस से बिल्ड हो गई है। ठीक है? आई

1:11:40होप आपको समझ आया होगा मेवन के सारे यूज़

1:11:42केस कितने अच्छे यूज़ केसेस हैं। इनफैक्ट

1:11:44अब हम मेवन के लास्ट टॉपिक की बात करते

1:11:46हैं जो है मेवन का लाइफ साइकिल और ये बहुत

Maven Lifecycle

1:11:49इंटरेस्टिंग टॉपिक है। सबसे पहले लाइफ

1:11:50साइकिल क्या होता है? देखो जब आप कोई जावा

1:11:52का कोड लिखते हो ना तो आपका जावा का कोड

1:11:54बहुत सारे फेसेस से होते हुए गुजरता है।

1:11:56राइट? आप अपने जावा के कोड को कंपाइल करते

1:11:58हो, उसे रन करते हो। उनके बीच में भी कई

1:12:00सारे फेसेस होते हैं जो हमें ऐसे नहीं

1:12:02दिखते। मेवन उन सारे लाइफ साइकिल को, उन

1:12:05सारे फेसेस को हैंडल करता है। तो देखो अगर

1:12:07हम इंटेलिजेंट पे जाएं, ठीक है? इसको

1:12:09क्लोज करते हैं और मैं यहां पे जाता हूं

1:12:10मेवन पे। तो मेरे पास यहां पे बहुत सारे

1:12:13टैब्स थे। ठीक है? एक टैब था मेरे पास

1:12:15लाइफ साइकिल का डिपेंडेंसी, रिपोजिटरी,

1:12:17प्लगइंस वगैरह-वगैरह। अब यहां पे मुझे

1:12:18जाना है लाइफ साइकिल पे। तो आप देखोगे

1:12:20मेरे पास कितने सारे मेवन के लाइफ साइकिल

1:12:22के फेसेस हैं। क्लीन, वैलिडेट, कंपाइल,

1:12:24टेस्ट, पैकेज, वेरीफाई, इंस्टॉल, साइट,

1:12:25डिप्लॉय। तो मेविन कहता है कि मैं आपके

1:12:28प्रोजेक्ट को ना कंप्लीटली एंड टू एंड

1:12:30हैंडल करूंगा। उसको क्लीन वैलिडेट ये सब

1:12:32करने से लेकर के डिप्लॉय करने तक। ठीक है?

1:12:34अब ये क्या होते हैं? इसको समझते हैं। तो

1:12:36सबसे पहले ना आप मानो कि लाइफ साइकिल ना

1:12:38मेवन ने तीन पार्ट्स में डिवाइड कर रखी

1:12:40है। तो इसको मैं अलग कलर से लिखता हूं। तो

1:12:42लेट्स से एक है आपकी क्लीन लाइफ साइकिल।

1:12:45ठीक है? तो ये हो गई आपकी वन। एक है आपकी

1:12:47डिफिकल्ट लाइफ साइकिल और तीसरी है आपकी

1:12:50साइड लाइफ साइकिल। ठीक है? क्लीन लाइफ

1:12:52साइकिल में एक ही फज़ है जो है क्लीन

1:12:54डिफ़ॉल्ट और आपकी साइट लाइफ साइकिल में भी

1:12:56एक ही फज़ है जो है साइट सा टाइट ठीक है ये

1:12:59बात बताता हूं क्या है सबसे इंपॉर्टेंट

1:13:01होती है आपकी डिफॉल्ट लाइफ साइकिल क्योंकि

1:13:04इसके पास है मल्टीपल फज़ अगर मैं इसके फेस

1:13:06की बात करूं तो ये सारे फज़ क्लीन को छोड़

1:13:09दो और साइट को छोड़ दो वैलिडेट कंपाइल

1:13:11टेस्ट पैकेज वेरीफाई इंस्टॉल डिप्लॉय ये

1:13:13सब इसके फज़ हैं हां जी तो देखो मैंने

1:13:15डिफ़ॉल्ट के सारे फेसेस देख लिए वैलिडेट

1:13:17कंपाइल टेस्ट पैकेज वेरीफाई इंस्टॉल

1:13:19डिप्लॉय अब इन फज़ का मतलब क्या है। इसको

1:13:21एक बार समझते हैं। पहली बात तो ये समझना

1:13:23ये जो फज़ है ना ये लाइन में होते हैं। तो

1:13:25पहले वैलिडेट होगा फिर कंपाइल, फिर टेस्ट,

1:13:26फिर पैकेज, फिर वेरीफाई, इंस्टॉल और

1:13:28डिप्लॉय। ठीक है? क्लीन और साइड हम बाद

1:13:30में देखते हैं। पहले हम डिफ़ॉल्ट लाइफ

1:13:31साइकिल को समझते हैं। और इंटरेस्टिंगली

1:13:33अगर आपने अपने एमवीएन से किया वैलिडेट तो

1:13:36आपका पूरा का पूरा कोड सिर्फ वैलिडेट

1:13:38होगा। मैं आपको बताता हूं अभी इसका मतलब

1:13:39क्या होता है। पर अगर आपने किया कंपाइल

1:13:41अगर आपने कंपाइल पे क्लिक किया तो आपका

1:13:43कोड सिर्फ वैलिडेट सिर्फ कंपाइल नहीं होगा

1:13:46बल्कि पहले वैलिडेट होगा और फिर कंपाइल

1:13:48होगा। यानी कि आप किसी भी स्टेज पे क्लिक

1:13:50करोगे ना उसके पहले के सारे स्टेजेस होते

1:13:52हुए जाएंगे। यानी कि अगर आपने किया

1:13:54डिप्लॉय बेसिकली इस पे क्लिक किया तो पहले

1:13:57वैलिडेट होगा फिर कंपाइल होगा, टेस्ट

1:13:59होगा, पैकेज बनेगा, वेरीफाई होगा, इंस्टॉल

1:14:01होगा और फिर डिप्लॉय होगा। राइट? तो इसका

1:14:03मतलब आप या तो डिप्लॉय पे क्लिक कर दो तब

1:14:05भी आपका कोड कंपाइल होते हुए गुजरेगा,

1:14:07टेस्ट भी होगा। और आप अगर कंपाइल पे क्लिक

1:14:09करो तब भी आपका कोड कंपाइल होगा। ठीक है?

1:14:11बस आपको याद रखना है कि अगर आप कोई भी फेज

1:14:13पे क्लिक करते हो तो सारे फज़ होते हुए

1:14:15गुजरते हैं। इनफैक्ट सिर्फ इतने ही फेसेस

1:14:17नहीं होते। इसके बीच में भी बहुत

1:14:19इंटरमीडिएट फसेस होते हैं जो हमें जानने

1:14:21की जरूरत नहीं है। वो अंदर से हिडन होते

1:14:22हैं। पर मेनमन यही है। सबसे पहले आपका फज़

1:14:25है वैलिडेट। अब वैलिड अब या तो आप यहां पे

1:14:27क्लिक करो तो वैलिडेट हो जाएगा या फिर आप

1:14:29अपने कमांड लाइन पे एम वी एन वैलिडेट लिख

1:14:31दो। ठीक है? मैं आपको वो बताता हूं। पर

1:14:32वैलिडेट का मतलब होता है कि आपके कोड के

1:14:34ना स्ट्रक्चर को वैलिडेट किया जाएगा कि

1:14:36बेसिकली आपके कोड में पोम फाइल होनी

1:14:38चाहिए। उसका स्ट्रक्चर सही होना चाहिए।

1:14:40ठीक है? सारी रिक्वायर्ड डिटेल्स प्रेजेंट

1:14:42होनी चाहिए। स्ट्रक्चरली देखना कि आपका

1:14:43कोड बिल्कुल सही है। पोम फाइल है। वो

1:14:45रीडेबल है। सब कुछ प्रेजेंट है

1:14:46वगैरह-वगैरह। है ना? अगला स्टेज है आपका

1:14:49कंपाइल। अब कंपाइल यहां पे मैंने कम कर भी

1:14:51दिया वैसे। कंपाइल का मतलब आपको पता ही है

1:14:53आपका कोड कंपाइल करते हैं। डॉट java फाइल

1:14:55को डॉट क्लास में कन्वर्ट किया जाता है।

1:14:56और आपको पता है वो आ जाता है आपके टारगेट

1:14:58फोल्डर के अंदर क्लासेस के अंदर। राइट?

1:15:00यहां पे आपकी सारे कंपाइल कोड इकट्ठा हो

1:15:02जाता है। और कंपाइल तो हमें वैसे भी पता

1:15:04है जावा के कोड को कंपाइल करने का मतलब

1:15:06क्या होता है? अगला है आपका टेस्ट। अगर आप

1:15:08रन करते हो टेस्ट फेस को। तो आपका जो भी

1:15:10कोड लिखा हुआ है वो टेस्ट होगा यूजिंग योर

1:15:13ओन टेस्ट केसेस। राइट? तो आपने अपने टेस्ट

1:15:15केसेस यहां पे लिखे होंगे जो यहां पे नहीं

1:15:16दिख रहे। पर अगर मैं अपने स्प्रिंग बूट

1:15:18एप्लीकेशन में जाऊं तो यहां पे उसने मेरे

1:15:20को कुछ हां ये देखो हेलो कंट्रोलर टेस्ट

1:15:22बना के दिया हुआ था। तो अगर मैं जो भी यूज़

1:15:24कर रहा हूं जे यूनिट मॉकेटो जिस तरीके से

1:15:26भी अपने यूनिट टेस्ट केस चेक करता हूं मैं

1:15:28उनको टेस्ट कर सकता हूं वो अपने आप टेस्ट

1:15:29हो जाएंगे। और आपको पता है अगर मैं टेस्ट

1:15:31पे क्लिक करूंगा तो पहले मेरा कोड वैलिडेट

1:15:32होगा फिर कंपाइल होगा और फिर टेस्ट होगा।

1:15:34राइट? ऑब्वियसली वैलिड कंपाइल होने के बाद

1:15:36ही आपका कोड टेस्ट हो सकता है। है ना? और

1:15:38टेस्ट किस पे होगा? जो भी आपने यहां पे

1:15:39टेस्ट केसेस लिखे होंगे उन केसेस पे। ठीक

1:15:40है? और उसके बाद है पैकेज। अब पैकेज मैंने

1:15:43आपको बताया था ना जैसे ही आप पैकेज पर

1:15:45क्लिक करते हो आपका जो भी कोड है उसकी जार

1:15:47फाइल बन जाती है और वो भी अगेन स्टोर हो

1:15:49जाती है आपकी टारगेट के अंदर राइट यहां पे

1:15:51कहीं जाके देखो मल्टीपल जार्स बनी हुई है

1:15:53क्योंकि एक बार मैंने आदित्य के नाम से

1:15:54स्टोर किया था एक बार मैंने सिंपल जार

1:15:56बनाई थी वगैरह वगैरह है ना तो यहां पे

1:15:58आपकी जार फाइल बन जाती है और स्टोर हो

1:15:59जाती है तो ये है पैकेज और आपको पता है

1:16:01पैकेज करूंगा तो सारे फेसेस होंगे तो पहले

1:16:03आपका कोड वैलिडेट होगा फिर कंपाइल होगा

1:16:05राइट क्योंकि जार फाइल जो बनती है वो डॉट

1:16:07क्लास फाइल की बनती है तो कंपाइल्ड कोड की

1:16:09बनेगी फिर आपका कोड टेस्ट होगा कि एक बार

1:16:11सब कुछ सही चल रहा है और तभी तभी आपकी जार

1:16:12फाइल बनेगी। राइट? बिना टेस्ट केसेस से

1:16:14गुजरे आपकी जार फाइल बन ही नहीं सकती।

1:16:16राइट? ऑब्वियसली कंसीडरिंग आपने टेस्ट

1:16:18केसेस लिखे हैं। वरना अगर आपने टेस्ट

1:16:19केसेस लिखे ही नहीं है तो जार फाइल तो ऐसे

1:16:21ही बन जाएगी जैसे अभी हमने नहीं लिखे थे।

1:16:23अब अगला फज़ है वेरीफाई। अब वेरीफाई फज़ में

1:16:25ना बहुत सारी चीजें आप टेस्ट कर सकते हो।

1:16:27जैसे इंटीग्रेशन टेस्टिंग यहां पे हो सकती

1:16:29है। राइट? या फिर यहां पे हम कोड की

1:16:31क्वालिटी को चेक कर सकते हैं। अब ये फज़

1:16:33करने के लिए ना आपको क्या करना पड़ेगा?

1:16:35आपको अपने pम डॉट एक्सml फाइल में तो

1:16:37बेसिकली अपने pm डॉट एक्सML फाइल में यहां

1:16:39पे तो हमारा प्लगइिंस नहीं है। अगर मैं

1:16:41स्प्रिंग बूट वाले pm डॉट एक्सML में जाऊं

1:16:42तो वहां पे देखो मेरे पास प्लगइन टैग है।

1:16:44राइट? इस प्लगइिंस में मैं मल्टीपल

1:16:46प्लगइिंस ऐड कर सकता हूं जिससे मैं अपने

1:16:48कोड को वेरीफाई कर सकता हूं। राइट? एक

1:16:50प्लगइन होगी जो मेरी कोड की क्वालिटी को

1:16:51टेस्ट करेगी। राइट? कि मैं फालतू के

1:16:53एक्स्ट्रा स्पसेस तो यूज़ नहीं कर रहा। मैं

1:16:54कोई ऐसे वेरिएबल्स तो यूज़ नहीं कर रहा जो

1:16:56मैंने डिक्लेअ कर दिए पर कहीं यूज़ ही नहीं

1:16:58किए। राइट? तो ऐसे कोड क्वालिटी मैं टेस्ट

1:17:00कर सकता हूं। इसको मैं टीम्स ओरिएंटेड डाल

1:17:02सकता हूं कि मेरी टीम में जो भी लोग काम

1:17:03करेंगे जब भी वो अपने प्रोजेक्ट को

1:17:05वेरीफाई करेंगे तो सारे चीजें पास होनी

1:17:07चाहिए। इंटीग्रेशन टेस्टिंग पास होनी

1:17:08चाहिए। यूनिट टेस्ट तो यहीं पे पास हो गया

1:17:10था। है ना? दूसरा कोड क्वालिटी सही होनी

1:17:12चाहिए। राइट? ये सब मैं कर सकता हूं अपने

1:17:15वेरीफाई फेज में। उसको इंस्टॉल करने से

1:17:17पहले। अब ये इंस्टॉल क्या है? अभी बताता

1:17:19हूं। अगला है मेरा इंस्टॉल फज़। यह बहुत

1:17:21इंटरेस्टिंग फज़ है क्योंकि जैसे ही आप

1:17:23इंस्टॉल फेस पे क्लिक करते हो आपका जो भी

1:17:26जार फाइल बनी थी वो आपके लोकल रिपोजिटरी

1:17:28पे इंस्टॉल हो जाती है। राइट? तो मैंने

1:17:30आपको कहा था ना जो आपका m2 फोल्डर है उसके

1:17:32अंदर जो रिपोजिटरी फोल्डर है वो आपके जार

1:17:34फाइल्स को भी होल्ड करता है लोकली। राइट?

1:17:36जो आप खुद से क्रिएट करते हो। तो जब भी आप

1:17:38यहां पे इंस्टॉल करोगे तो जो पैकेज से जार

1:17:40फाइल बनी होगी वो आपके लोकल रेपोजिटरी में

1:17:42जाकर के इंस्टॉल हो जाएगी। ठीक है? तो

1:17:44इनफैक्ट जब आप इंस्टॉल करोगे तो वो सारे

1:17:46फज़ से गुजरेगी। पहले वैलिडेट होगा, कंपाइल

1:17:48होगा, टेस्ट होगा, पैकेज बनेगा। फिर

1:17:50वेरीफाई भी होगा। यानी कि आपके लोकल में

1:17:52जाने से पहले आप पहले ही वेरीफाई कर सकते

1:17:54हो कि सारे टेस्ट केसेस इंटीग्रेशन के पास

1:17:56होने चाहिए। कोड क्वालिटी अच्छी होनी

1:17:58चाहिए वगैरह-वगैरह। या फिर आप कोड कवरेज

1:18:00चेक कर सकते हो। बहुत सारी चीजें चेक हो

1:18:01सकती है वेरीफाई में अलग-अलग प्लगइंस को

1:18:03डाल के। है ना? और इंस्टॉल में आप अपनी

1:18:05लोकल रेपोजिटरी पे अपने कोड को इंस्टॉल

1:18:08करते हो। और फाइनली आता है आपका डिप्लॉय।

1:18:11डिप्लॉय में जो आपने अपने लोकल रिपॉजिटरी

1:18:13में कोड को इंस्टॉल किया यानी कि जार फाइल

1:18:15या आर्टिफेक्ट को इंस्टॉल किया है वो आप

1:18:16डिप्लॉय कर देते हो रिमोट रिपॉजिटरी के

1:18:19अंदर। अब ये रिमोट रिपोजिटरी कौन सी होगी?

1:18:21जनरली ये कंपनी वाइड होती है। जब आप

1:18:23डिप्लॉय पे क्लिक करते हो तो क्या होगा?

1:18:24आपकी कंपनी की खुद की एक रिमोट रिपॉजिटरी

1:18:26बनी होती है जिसके बारे में हमने बात की

1:18:28थी यहां पे। अ कहां पे? यहां पे अदर रिमोट

1:18:30रिपॉजिटरीज पे। राइट? और आप वहां पे उसको

1:18:33अपलोड कर सकते हो ताकि बाकी लोग बाकी टीम

1:18:35मेंबर्स या दूसरी टीम्स के भी लोग आपकी

1:18:37जार फाइल को यूज़ कर सकें। अब यहां पे आप

1:18:40कंफ्यूज मत होना इस डिप्लॉय में या फिर जो

1:18:42हम गिट में अपने कोड को पुश करते हैं।

1:18:43राइट? गेट में हम अपने पूरे कोड को पुश

1:18:46करते हैं। लेट से गेट हब पे पुश करेंगे,

1:18:47गिट लैब पे पुश करेंगे वगैरह-वगैरह। है

1:18:49ना? वहां पर हमारा कोड मर्ज होता है

1:18:51प्रोडक्शन पे जाने के लिए। पर ये जो

1:18:53डिप्लॉय है इसका मतलब बस ये है कि हमारी

1:18:55जो रिमोट रिपोजिटरीज है जहां पे हमारी

1:18:56सारी जार्स पड़ी होंगी वहां पे मैंने अपने

1:18:59इस जार फाइल को भी डाल दिया। अपने

1:19:01आर्टिफेक्ट को डाल दिया ताकि इस टीम में

1:19:03कोई भी मेरी आर्टिफेक्ट को डाउनलोड कर

1:19:05सके। वहां पे उसे यूज़ कर सके

1:19:06वगैरह-वगैरह। राइट? जैसे मेरे पास मेवन

1:19:08सेंट्रल रिपॉजिटरी है जहां से मैं जार ले

1:19:10सकता हूं। सेम मैं अपने जार को भी डिप्लॉय

1:19:12कर सकता हूं। अपनी खुद की रिमोट रिपॉजिटरी

1:19:14के अंदर। राइट? ये बिल्कुल अलग है। यहां

1:19:15पे मैं सिर्फ जार्स को डाउनलोड या इंस्टॉल

1:19:17कर रहा हूं। वहां पे अपने कोड को डिप्लॉय

1:19:19करता हूं पूरे के पूरे जिसमें अपने कोड को

1:19:20प्रोडक्शन में रन करने के लिए यूज़ करता

1:19:22हूं। राइट? अब ये तो हो गया हमारा नॉर्मल

1:19:25फ्लो। ठीक है? अब ये तो हो गया हमारा

1:19:27डिफॉल्ट लाइफ साइकिल। ये क्लीन लाइफ

1:19:29साइकिल क्या है? देखो क्लीन लाइफ साइकिल

1:19:31में एक ही चीज आती है। क्लीन। ये

1:19:32इंडिपेंडेंट है। जब भी मैं क्लीन करता हूं

1:19:34ना तो मेरे यहां पे जितने भी ओल्ड बिल्ड्स

1:19:36हैं जो मेरे यहां पे टारगेट में स्टोर हो

1:19:38रखे होंगे वो सब क्लीन हो जाते हैं। तो

1:19:40देखो मैं करके दिखाता हूं। जैसे ही मैंने

1:19:41क्लिक किया क्लीन तो यहां पे मेरा देखो

1:19:43टारगेट हट गया। मेरा क्लीन हो गया और मेरे

1:19:45सारे लोकल जितने भी अभी मैंने यहां पे

1:19:47बनाए थे आर्टिफेक्ट्स वो सब डिलीट हो गए।

1:19:49ठीक है? वो वाले डिलीट नहीं हुए जो मेरे

1:19:51लोकल रिपोजिटरी में स्टोर हैं। नहीं जो

1:19:53मैंने अपने प्रोजेक्ट में अभी रखे हुए हैं

1:19:54वो सब जो मेरे टारगेट के अंदर थे बस वो सब

1:19:56डिलीट हो गए। रेपोजिटरी के मेरे वहीं

1:19:57मौजूद हैं। ओके? अब एक और फ्लो है साइट

1:20:00लाइफ साइकिल। यह डॉक्यूमेंटेशन के

1:20:02रिपोर्ट्स बनाने का काम आता है। अगर आप

1:20:03साइट पर क्लिक करोगे तो बेसिकली अभी तो

1:20:08तो देखो ये बहुत देर तक चल रहा है क्योंकि

1:20:10ये उसमें डॉक्यूमेंटेशंस उसकी देख रहा है

1:20:11कैसे बनानी है डाउनलोड सेंट्रल लाइब्रेरी

1:20:13से बहुत कुछ डाउनलोड होगा और देखो बिल्ड

1:20:15सक्सेस अगर मैं यहां पे टारगेट के अंदर

1:20:16जाऊंगा तो इसमें देखो आप साइट के अंदर

1:20:18सीएसएस इमेजज़ डिपेंडेंसी समरी इसने पूरे

1:20:22के पूरे डॉक्यूमेंटेशन और उसकी रिपोर्ट्स

1:20:23बना दी होंगी। राइट? इसकी जरूरत हमें

1:20:25ज्यादातर नहीं पड़ती है। हम इसको क्लीन कर

1:20:27लेते हैं वापस से। ठीक है? हमारा मेनली जो

1:20:29फ्लो रहेगा वो या तो डिफ़ॉल्ट फ्लो और

1:20:31क्लीन फ्लो रहेगा। अब दूसरी बात देखो अगर

1:20:34आप या तो यहां से मेवन के सारी लाइफ

1:20:37साइकिल को यूज़ कर सकते हो वैलिडेट कंपाइल

1:20:39क्लिक करके। ठीक है? नहीं तो आप यूज़ कर

1:20:41सकते हो अपने टर्मिनल को। आप अपने

1:20:43इंटेलिजें टर्मिनल खोल लो यहां से और आप

1:20:45यहां से भी लिख सकते हो एमवी एन कंपाइल और

1:20:48आपका कोड कंपाइल हो जाएगा। और सिर्फ

1:20:49कंपाइल नहीं होगा। आपको पता है पहले आपका

1:20:51कोड वैलिडेट होगा और फिर कंपाइल होगा।

1:20:54राइट? तो यहां से भी हो सकता है। पर पहली

1:20:56बार जब आप इस कमांड को चलाओगे तो आपके पास

1:20:58आ जाएगा कि एमवीएन इंस्टॉल नहीं है। वो

1:21:00आपको कमांड लाइन के लिए इंस्टॉल करना

1:21:01पड़ेगा टर्मिनल के लिए। तो अगर आप Mac में

1:21:04हो तो आप ब्रू का यूज़ कर सकते हो। तो आप

1:21:05लिख सकते हो सीधा ब्रू इंस्टॉल मेन नहीं

1:21:08तो अगर आप Windows यूज़ कर रहे हो तो

1:21:10Windows में भी आई गेस ब्रू की कोई

1:21:12अल्टरनेटिव होगा। आई गेस चोको तो है। है

1:21:13ना? चोको अगर अभी भी चलता है तो आप चोको

1:21:15को यूज़ कर सकते हो। चोको इंस्टॉल मेन अ

1:21:19hfन व आई गेस है ना? यहां से इंस्टॉल हो

1:21:21जाएगा। नहीं तो आप देख सकते हो मेवन को

1:21:23लोकली कैसे इंस्टॉल करना है। सिंपल तरीका

1:21:25तो है आप इस वेबसाइट पे जाओ मेवन

1:21:26रिपॉजिटरी पे। यहां से आप उसको डाउनलोड

1:21:28करके अपने कमांड लाइन पे उसका पाथ सेट कर

1:21:30दो। राइट? पर एक बार अगर आपने ये कर लिया

1:21:33जो कि आपको करना भी चाहिए। अब आप अपने

1:21:35कमांड लाइन से ही मेवन पे कमांड दे सकते

1:21:36हो। आप बस लिखोगे एमवी एन कंपाइल या फिर

1:21:39एमवी एन इंस्टॉल या फिर एमवी एन डिप्लॉय

1:21:42वगैरह-वगैरह। इंटरेस्टिंगली आप दो कमांड्स

1:21:45को जोड़ भी सकते हो। लेकिन दो अलग-अलग

1:21:47फेसेस से। दो अलग-अलग लाइफ साइकिल से।

1:21:49क्या मतलब? देखो आपके पास एक कमांड है अ

1:21:52लेट्स से कंपाइल और एक कमांड है क्लीन। तो

1:21:55आप कर सकते हो एमवीएन क्लीन कंपाइल। क्लीन

1:21:57कंपाइल क्या करेगा? पहले चीजों को क्लीन

1:21:58करेगा। तो जो भी आपने पहले के

1:22:00आर्टिफेक्ट्स बना रखे होंगे वो क्लीन हो

1:22:02जाएंगे और वो दोबारा से आपका कोड कंपाइल

1:22:04होगा। राइट? या फिर आप सबसे फेमस कमांड जो

1:22:06होती है वो होती है एमवीएन क्लीन इंस्टॉल।

1:22:09राइट? ये क्या करता है? आपके पुराने सारे

1:22:11आर्टिफेक्ट्स को डिलीट करता है। यहां पे

1:22:12जो आपने बना रखे होंगे टारगेट में। दोबारा

1:22:14से आपके पैकेजेस बनाता है। राइट? इंस्टॉल

1:22:17आपको पता है ना कहां आता है यहां पे। तो

1:22:18पहले आपका वैलिडेट करेगा, कंपाइल करेगा

1:22:20सारा कंपाइल होगा कोड। टेस्ट फसेस से

1:22:22गुजरेगा। पैकेज यानी कि आपकी जार फाइल

1:22:25बनेगी। वेरीफाई होगा। यहां पे हमारा कोई

1:22:26वेरीफाई फेस है नहीं तो स्किप हो जाएगा।

1:22:28टेस्ट भी और वेरीफाई भी स्किप हो जाएगा।

1:22:29और फाइनली इंस्टॉल मतलब आपके लोकल

1:22:32रिपोज़िटरी में M2 फोल्डर के अंदर आपके जार

1:22:34को इंस्टॉल कर देगा। ठीक है? तो याद रखना

1:22:36एमबीएन क्लीन इंस्टॉल बहुत ही फेमस कमांड

1:22:38है। हम इसको बार-बार यूज़ करते हैं। तो अगर

1:22:40मैं इसको देखो एमबीएन क्लीन इंस्टॉल

1:22:41करूंगा तो पहले मेरा यहां पे टारगेट

1:22:43फोल्डर क्लीन होगा। फिर नया फोल्डर बनेगा

1:22:45और मेरे लोकल रेपोज़िटरी में इसकी जार

1:22:47इंस्टॉल हो जाएगी। ये देखो बिल्ड सक्सेस

1:22:48तो इसने देखो मेरे को बता भी इसने कहां

1:22:50इंस्टॉल किया है मेरे यूज़र्स आदित्य टंडन

1:22:52के अंदर डॉट M2 फोल्डर उसके अंदर और

1:22:55एग्जांपल मेवन डेमो और ये रहा मेरी जार

1:22:57फाइल राइट हो सकता है आपको पूरी ना दिख

1:22:59रही हो इसको यहां पे कॉपी कर लेते हैं कुछ

1:23:02ऐसे देखो तो इसने यहां पे इंस्टॉल किया

1:23:03होगा मेरे यूजर के अंदर गया डॉट M2 फोल्डर

1:23:06रिपोज़िटरी के अंदर तो देखो ये रहा मेरा

1:23:07पूरा का पूरा फोल्डर स्ट्रक्चर ऑर्ग

1:23:09एग्जांपल मेवन डेमो ऑर्ग एग्जांपल अब यहां

1:23:12पे इसने मेवन डेमो नहीं बना रखा क्योंकि

1:23:13जो बाय डिफ़ॉल्ट मैंने मेवन का प्रोजेक्ट

1:23:15बनाया था उसने मेरे सिर्फ ग्रुप आईडी वो

1:23:17यूज़ किया यहां पे मेरी ग्रुप आईडी को

1:23:19फोल्डर स्ट्रक्चर में। उसके अंदर

1:23:20आर्टिफेक्ट आईडी यूज़ नहीं की पर जनरली वो

1:23:22यूज़ होती है। अगर आप अपनी स्प्रिंगbott

1:23:24एप्लीकेशन में देखोगे तो ऑर्ग कॉम डॉट

1:23:26एग्जांपल डॉट डेमो यहां पे लिखा हुआ है।

1:23:28राइट? तो पहले हम ग्रुप आईडी को यूज़ करते

1:23:30हैं। फोल्डर स्ट्रक्चर में उसके अंदर

1:23:32आर्टिफेक्ट आईडी यूज़ करते हैं। और उसके

1:23:33अंदर मेरी जावा फाइल होती है। राइट? तो

1:23:35मैं यहां पे उसको मैनुअली बना सकता था। पर

1:23:36वो हमने नहीं बनाया। कोई बात नहीं। पर

1:23:38इसने देखो फोल्डर स्ट्रक्चर वही रखा है।

1:23:40तो देखो पहले ग्रुप आईडी फिर आर्टिफेक्ट

1:23:41आईडी। उसके बाद वर्जन आईडी भी इसने यूज़

1:23:43किया। राइट? तो 1.0 स्नैपशॉट इसको भी एज अ

1:23:45फोल्डर बना दिया। 1.0 Snapshot उसके अंदर

1:23:48इसने रखा है मेरे जार का नाम जो कि क्या

1:23:50होता है? सबसे पहले मेरे आर्टिफेक्ट का

1:23:51नाम मेवन डेमो माइनस और जो मेरी वर्जन का

1:23:54नाम है 1.0 Snapshot डॉट जार देखो देखो

1:23:57मेवन डेमो 1.0 Snapsh डॉट जार राइट

1:24:00इनफैक्ट इस फोल्डर के अंदर मैं जाऊंगा तो

1:24:02मुझे मेरी जार फाइल भी मिल जाएगी। सबसे

1:24:03पहले देखो मैं गया अपने रेपोजिटरी के अंदर

1:24:05उसने ऑर्ग के अंदर उसके बाद मेरे को जाना

1:24:07है एग्जांपल के अंदर मेवन डेमो के अंदर और

1:24:09मेवन डेमो के अंदर 1.0 स्नैपशॉट और यहां

1:24:12पे आप देखो मिल जाएगी हां ये रही मेवन

1:24:14डेमो 1.0 स्नैपशॉट डॉट जार ये रही मेरी

1:24:17जार फाइल राइट ठीक है आई होप आपको मेवन के

1:24:20बारे में सब कुछ समझ आया होगा ये बहुत

1:24:22बड़ा लेक्चर हो गया पर यहां पे हमने

1:24:23कंप्लीटली मेवन को अच्छे से डेप्थ में

1:24:25स्टडी किया है राइट एक लास्ट चीज अगर मैं

1:24:28आपको बताना चाहूंगा तो जब भी आप मेवन का

Maven Archetypes

1:24:30प्रोजेक्ट बनाते हो लेट से मैंने यहां पे

1:24:31न्यू प्रोजेक्ट पे क्लिक किया तो आपके पास

1:24:33एक और ऑप्शन होता है आर्क टाइप्स का। तो

1:24:35देखो यहां पे लिखा होगा मेवन आर्क टाइप्स।

1:24:37आप यहां पे जाओ तो यहां पे ये क्या होता

1:24:39है? लेट्स से आपने प्रोजेक्ट का नाम रखा

1:24:41मेवन डेमो टू। डेमो टू। ठीक है? तो ये मैं

1:24:45इसकी लोकेशन रहने देता हूं जेडी के 23। अब

1:24:47यहां पे ना आर्क टाइप्स का मतलब होता है।

1:24:49तो ऐसे बने-बए टेंपल्लेट्स जो आप यूज़ कर

1:24:51सकते हो ताकि आपको खुद से स्टार्टिंग से

1:24:53कोड ना लिखना पड़े। राइट? तो फॉर एग्जांपल

1:24:55यहां पे होता है एक स्टार्टर। हां क्विक

1:24:58स्टार्ट। तो अगर मैं इस क्विक स्टार्ट का

1:24:59प्रोजेक्ट बनाऊंगा तो मुझे पहले से ही कुछ

1:25:01लिखी लिखाई चीजें मिल जाएंगी। हो सकता है

1:25:03कुछ डिपेंडेंसी इंस्टॉल मिल जाए। राइट? और

1:25:05ये सब तो है इसका इंटरनल कैटलॉग जो

1:25:07बेसिकली इस आईडी में पहले से प्रेजेंट है।

1:25:09इसलिए इसमें ऑप्शंस भी अगर आप देखोगे तो

1:25:11कम है। राइट? इतने से ही ऑप्शंस हैं। पर

1:25:13मेरे पास और भी कैटलॉग्स हैं जैसे कि मेवन

1:25:15सेंट्रल। तो मेवन सेंट्रल आपको पता है H1

1:25:17सेंट्रल रिपॉज़िटरी। तो यहां से भी आप बहुत

1:25:19सारे आर्क टाइप्स डाउनलोड कर सकते हो। बने

1:25:21बनाए आर्क टाइप्स आपको मिल जाएंगे। ठीक

1:25:23है? यहां पे देखो आप देखोगे तो स्प्रिंग

1:25:25बूट का भी आपको देखो स्प्रिंग जेपी का मिल

1:25:26गया। स्प्रिंग बूट वेब स्टार्टर राइट जो

1:25:29हमने बेसिकली स्प्रिंग इनिशलाइजर से बनाया

1:25:31था वो आप यहां से भी बना सकते हो बने बनाए

1:25:33टेंपल्लेट्स तो अगर मैं यहां पे लेट्स से

1:25:35एक इंटरनल में आपको एक बना के दिखाऊं जे

1:25:37डी के लेट्स से एक क्विक स्टार्ट नाम से

1:25:40होगा यस तो ये मुझे कोई ना कोई बॉईलर

1:25:41प्लेट कोड पहले से बना के दे देगा लेट्स

1:25:43से वर्जन 1.1 ही रखते हैं एडिशनल सेटिंग्स

1:25:45पे मेरे पास ठीक है ये सब सेट हो रखा है

1:25:48मैं करता हूं क्रिएट और न्यू विंडो और ये

1:25:51सब मेरा न्यू विंडो पे खुल जाएगा इसको

1:25:53थोड़ा सा टाइम देते हैं हां तो मेरा बिल्ड

1:25:54सक्सेस हो गया ठीक है तो अब देखो इसने

1:25:57मुझे कुछ बना के दिया है। सबसे पहले मेरी

1:25:58पॉम डॉट एक्सml फाइल में एक डिपेंडेंसी

1:26:00पहले से प्रीइस्टॉल्ड मिली है मुझे j

1:26:02यूनिट की राइट तो मॉकटो की बेसिकली और अगर

1:26:04मैं सोर्स खोलूंगा मेन के अंदर देखो इसने

1:26:06मुझे एक ऐप बना के दिया है। उसने हेलो

1:26:08वर्ल्ड लिखा हुआ है ऑब्वियसली और ऐसे ही

1:26:10शायद मुझे हां एक ऐप टेस्ट बना के दी होगी

1:26:12इसकी बेसिकली टेस्ट फाइल यूनिट टेस्ट

1:26:14केसेस वहां लिखे होंगे। राइट? तो बेसिकली

1:26:16इसने मुझे कुछ पहले से एक टेंप्लेट बना के

1:26:18दे दिया जिसपे मैं काम करना शुरू कर सकता

1:26:20हूं। और यही है मेरा आर्क टाइप्स। इन

1:26:22फैक्ट मैं मल्टीपल तरीके के आर्क टाइप्स

1:26:24देख सकता हूं। जैसे मैंने आपको बताया अगर

1:26:25मैं यहां पे जाऊंगा ना तो मेरे को इंटरनल

1:26:27से अगर मैं मेन सेंटर पे जाऊं कहां है?

1:26:29हां स्प्रिंग बूट स्टार्टर आर्क टाइप्स।

1:26:31राइट? मैं इसको भी सेलेक्ट कर सकता हूं।

1:26:33तो जो बेसिकली अगर लेट्स से यहां पे मैं

1:26:34इसका नाम रखता हूं स्प्रिंग इसका नाम रखता

1:26:36हूं लेट्स से स्प्रिंग बूट डेमो। ठीक है?

1:26:39कुछ इस तरीके से और अगेन एडवांस सेटिंग्स

1:26:42में मैं ये सब सेम ही रख लेता हूं। ठीक

1:26:43है? ये सब फालतू के प्रोजेक्ट्स मैं बाद

1:26:44में डिलीट कर दूंगा। पर अभी के लिए मान लो

1:26:46मैंने यहां पे ये चूज़ किया। मैंने किया

1:26:48क्रिएट और न्यू विंडो। तो एक इसको थोड़ा

1:26:51सा लोड होने देते हैं। और हो गया हमारा

1:26:54बिल्ड सक्सेस। और देखो इसने मुझे स्प्रिंग

1:26:56बूट का एक स्टार्टर पैक बना के दे दिया।

1:26:58जिसकी अगर मैं pm डॉट एक्सML फाइल के अंदर

1:27:00जाऊंगा तो देखो ये रही मेरी pm एक्सml ये

1:27:03ऊपर बहुत सारा कमेंट है। कुछ लाइसेंस ऑफ़

1:27:05apacचे वगैरह-वगैरह। तो अब अगर मैं इस पे

1:27:07डिपेंडेंसीज़ पे जाऊंगा तो देखो इसने मुझे

1:27:08स्प्रिंग बूट स्टार्टर वाली डिपेंडेंसी दे

1:27:10दी। राइट? तो जो मुझे या तो स्प्रिंग

1:27:12इनिशलाइजर से मिली थी वो भी मिल गई। एक

1:27:14स्प्रिंग बूट स्टार्टर प्रोवाइडर की कोई

1:27:15डिपेंडेंसी है और एक हाइबरनेट का वैलिडेटर

1:27:17है। ठीक है? और एक हाइपरनेट वैलिडेटर है।

1:27:19ठीक है? तो अगेन हो सकता है मुझे

1:27:21डिपेंडेंसी चाहिए। हो सकता है ना चाहिए

1:27:22हो। जो चाहिए होगी वो मैं रख लूंगा। जो

1:27:24नहीं चाहिए होगी वो हटा दूंगा। ठीक है?

1:27:25कुछ प्लगिंस ने मुझे ला के दे दी है।

1:27:27राइट? अब प्लगिंस मैंने आपको बताया था काम

1:27:29आती है जब आप क्या करते हो? लाइफ साइकिल

1:27:31में वैलिडेट स्टेज पे जाते हो। वेरीफाई

1:27:32स्टेज पे सॉरी वेरीफाई स्टेज पे आप कुछ

1:27:34प्लगइिंस इंस्टॉल कर सकते हो। तो खैर ये

1:27:36सब चीजें हो गई। और हमने सोर्स फाइल के

1:27:38अंदर इसने जावा में देखो एक हेलो कंज्यूमर

1:27:40और हेलो इंप्लीमेंटेशन ये सब कुछ बना के

1:27:42दे दिया। अगेन हम नाम थोड़ा इससे डिफरेंट

1:27:44रखते हैं। नेमिंग कन्वेंशन अलग होती है।

1:27:46आप चाहो तो इसको यूज़ कर सकते हो। नहीं तो

1:27:48हमारे पास स्प्रिंग इनिशलाइजर तो है ही।

1:27:50ठीक है? आई होप आपको मजा आया होगा। बहुत

1:27:52कुछ सीखने को मिला होगा। बहुत लंबा लेक्चर

1:27:54हो गया। पर यहां पे हमने मेवन को डेप्थ

1:27:56में समझा है। कभी आपको मेवन में कोई

1:27:57प्रॉब्लम नहीं आने वाली। अब नेक्स्ट

1:27:59लेक्चर से आप मेवन को ईजीली यूज़ कर पाओगे।

1:28:01आपसे मिलते हैं नेक्स्ट लेक्चर में। तब तक

1:28:03के लिए थैंक यू सो मच।

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.