निर्भरताओं और प्लगइन का प्रबंधन
बाहरी लाइब्रेरी जोड़ना और उनका प्रबंधन करना सीखें तथा अपनी बिल्ड प्रक्रिया का विस्तार करने के लिए प्लगइन का उपयोग करें
निर्भरताओं और प्लगइन का प्रबंधन, CoddyKit पर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
लाइब्रेरी और बिल्ड प्रक्रिया
किसी भी वास्तविक परियोजना में, आपको हर चीज़ शुरू से लिखे बिना कार्यक्षमता जोड़ने के लिए बाहरी लाइब्रेरी की आवश्यकता होगी। इन्हें निर्भरताएँ भी कहा जाता है।
Leiningen और Deps.edn जैसे बिल्ड टूल इन लाइब्रेरी को प्रबंधित करने में आपकी सहायता करते हैं, जिससे उन्हें स्वचालित रूप से जोड़ना, अपडेट करना और हटाना आसान हो जाता है।
Leiningen: निर्भरताएँ जोड़ना
Leiningen में आप अपनी निर्भरताएँ project.clj फ़ाइल में घोषित करते हैं। इन्हें :dependencies वेक्टर में रखा जाता है, जिसमें आपकी परियोजना के लिए आवश्यक लाइब्रेरी की सूची होती है।
प्रत्येक निर्भरता स्वयं एक वेक्टर होती है, जिसमें लाइब्रेरी का समूह ID, आर्टिफैक्ट ID और संस्करण शामिल होते हैं, उदाहरण के लिए:
[group-id/artifact-id "version"]
Leiningen: लाइब्रेरी का उपयोग करना
tick जैसी बाहरी लाइब्रेरी (एक सरल समय लाइब्रेरी) का उपयोग करने के लिए, पहले उसे project.clj फ़ाइल में :dependencies कुंजी के अंतर्गत जोड़ें:
:dependencies [[org.clojure/clojure "1.11.1"]
[tick "0.5.0-RC1"]]
जोड़ने के बाद, आप अपने नेमस्पेस में लाइब्रेरी को require कर सकते हैं और इसके फ़ंक्शन का उपयोग कर सकते हैं। इस उदाहरण को चलाकर देखें:
(ns my-app.core
(:require [tick.core :as t]))
(defn -main
"Prints the current time using the tick library."
[& args]
(println "The current time is:" (t/now)))Deps.edn: निर्भरताएँ जोड़ना
deps.edn में निर्भरताएँ :deps मानचित्र में घोषित की जाती हैं। यह फ़ाइल आमतौर पर आपकी परियोजना के रूट में होती है।
:deps में प्रत्येक प्रविष्टि एक लाइब्रेरी नाम को उसके स्रोत वाले मानचित्र से जोड़ती है। Maven Central की लाइब्रेरी के लिए आमतौर पर :mvn/version का उपयोग किया जाता है:
{library-name {:mvn/version "version"}}
Deps.edn: लाइब्रेरी का उपयोग करना
deps.edn के साथ उसी tick लाइब्रेरी का उपयोग करने के लिए, उसे अपनी deps.edn फ़ाइल में इस प्रकार जोड़ें:
{:paths ["src"]
:deps {tick/tick {:mvn/version "0.5.0-RC1"}}}
इसके बाद, आपका कोड (जैसे, src/my_app/core.clj में) लाइब्रेरी को आवश्यकतानुसार शामिल करके उसका उपयोग कर सकता है। इसे चलाकर देखें:
(ns my-app.core
(:require [tick.core :as t]))
(defn -main
"Prints the current time using the tick library."
[& args]
(println "The current time is:" (t/now)))संक्रमणशील निर्भरताओं को समझना
जब आप कोई लाइब्रेरी जोड़ते हैं, तो सही ढंग से काम करने के लिए वह अक्सर स्वयं अन्य लाइब्रेरी पर निर्भर होती है। इन्हें संक्रमणशील निर्भरताएँ कहा जाता है।
आपका बिल्ड टूल इन्हें भी स्वचालित रूप से प्राप्त कर लेता है। उदाहरण के लिए, tick लाइब्रेरी clojure.java.time पर निर्भर हो सकती है, जिसे डाउनलोड भी किया जाएगा।
इससे आपको अपनी परियोजना के लिए आवश्यक प्रत्येक लाइब्रेरी का मैन्युअल रूप से हिसाब रखने की आवश्यकता नहीं पड़ती।
संक्रमणशील निर्भरताएँ हटाना
कभी-कभी आपको किसी संक्रमणशील निर्भरता को हटाने की आवश्यकता पड़ सकती है। ऐसा आमतौर पर अन्य लाइब्रेरी के साथ संस्करण टकराव से बचने या अपनी परियोजना का कुल आकार घटाने के लिए किया जाता है।
Leiningen में आप किसी निर्भरता वेक्टर के भीतर :exclusions कुंजी का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप tick से clojure.java.time को हटाना चाहते हैं:
(defproject my-app "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.11.1"]
[tick "0.5.0-RC1" :exclusions [clojure.java-time]]]
:main ^:skip-aot my-app.core
:target-path "target/%s")बिल्ड टूल प्लगइन
प्लगइन आपके बिल्ड टूल की कार्यक्षमता बढ़ाते हैं। वे नए कार्य जोड़ सकते हैं, प्रक्रियाओं को स्वचालित कर सकते हैं या अन्य विकास टूल के साथ एकीकरण कर सकते हैं।
इनका सामान्य उपयोग कोड फ़ॉर्मैटिंग, स्थिर विश्लेषण, परिनियोजन या विशिष्ट परीक्षण समूह चलाने में होता है।
प्लगइन सामान्य निर्भरताओं से अलग होते हैं; वे परियोजना की बिल्ड प्रक्रिया पर काम करते हैं, केवल आपके एप्लिकेशन कोड के लिए लाइब्रेरी उपलब्ध नहीं कराते।
Leiningen: प्लगइन का उपयोग करना
Leiningen आपके project.clj में :plugins कुंजी के अंतर्गत परिभाषित प्लगइन का समर्थन करता है। आइए lein-ancient देखें, जो पुरानी निर्भरताओं की जाँच करने में सहायता करता है।
आप अपने :plugins वेक्टर में [lein-ancient "0.6.15"] जोड़ेंगे। फिर अपने टर्मिनल से lein ancient check चलाकर देख सकते हैं कि आपकी लाइब्रेरी नवीनतम हैं या नहीं।
(defproject my-app "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.11.1"]]
:plugins [[lein-ancient "0.6.15"]]
:main ^:skip-aot my-app.core
:target-path "target/%s")निर्भरता प्रबंधन जाँच
आपने Clojure परियोजनाओं में निर्भरताओं और प्लगइन को प्रबंधित करना सीखा है। अब अपनी समझ की जाँच करें।
पुनरावलोकन: निर्भरताएँ और प्लगइन
बहुत अच्छा! इस पाठ में हमने सीखा:
- Leiningen के
project.cljऔर Deps.edn केdeps.ednका उपयोग करके बाहरी लाइब्रेरी (निर्भरताएँ) कैसे जोड़ते हैं। - संक्रमणशील निर्भरताओं की अवधारणा और उनका स्वचालित प्रबंधन।
- Leiningen में विशिष्ट संक्रमणशील निर्भरताओं को कैसे हटाते हैं।
- बिल्ड टूल की कार्यक्षमता बढ़ाने में प्लगइन की भूमिका और सामान्य लाइब्रेरी से उनका अंतर।
स्वस्थ और कुशल Clojure परियोजनाओं को बनाए रखने के लिए निर्भरता और प्लगइन प्रबंधन में दक्षता महत्वपूर्ण है। नई लाइब्रेरी और टूल तलाशते रहें!
एआई शिक्षक के साथ Clojure सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “निर्भरताओं और प्लगइन का प्रबंधन” पाठ निःशुल्क है?
हाँ—“निर्भरताओं और प्लगइन का प्रबंधन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“निर्भरताओं और प्लगइन का प्रबंधन” में मैं क्या सीखूँगा?
बाहरी लाइब्रेरी जोड़ना और उनका प्रबंधन करना सीखें तथा अपनी बिल्ड प्रक्रिया का विस्तार करने के लिए प्लगइन का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“निर्भरताओं और प्लगइन का प्रबंधन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Leiningen और Deps.edn की मूल बातें
- निर्भरताओं और प्लगइन का प्रबंधन
- बिल्ड, परीक्षण और परिनियोजन
- प्रोफ़ाइल, उपनाम और वातावरण प्रबंधित करना