परिचय: Maven और Gradle क्या हैं और इनकी आवश्यकता क्यों है?
Java डेवलपमेंट की दुनिया में एक बुनियादी समस्या है: डिपेंडेंसी (बाहरी लाइब्रेरी) को कैसे मैनेज करें, प्रोजेक्ट बिल्ड को ऑटोमेट करें, टेस्ट चलाएं और फाइनल आर्टिफैक्ट (JAR, WAR) बनाएं? JAR फाइलों को मैन्युअली डाउनलोड करना और classpath सेट करना, खासकर दर्जनों डिपेंडेंसी वाले प्रोजेक्ट्स के लिए, एक अव्यावहारिक तरीका है।
Maven और Gradle Java के लिए दो सबसे लोकप्रिय ऑटोमैटिक बिल्ड सिस्टम (build automation tools) हैं। ये निम्नलिखित समस्याओं का समाधान करते हैं:
- डिपेंडेंसी मैनेजमेंट: सेंट्रल रिपॉजिटरी (Maven Central, Google Maven) से लाइब्रेरी और उनकी ट्रांज़िटिव डिपेंडेंसी को ऑटोमैटिक डाउनलोड करना।
- लाइफसाइकिल मानकीकरण: कंपाइलेशन, टेस्टिंग, पैकेजिंग, डिप्लॉयमेंट - ये सब स्टैंडर्ड कमांड से होते हैं।
- बिल्ड रिप्रोड्यूसिबिलिटी: कोई भी डेवलपर सिर्फ सोर्स कोड और कॉन्फ़िगरेशन फ़ाइल से एक कमांड में प्रोजेक्ट बना सकता है।
- CI/CD इंटीग्रेशन: Jenkins, GitLab CI, GitHub Actions आसानी से Maven/Gradle बिल्ड चला सकते हैं।
Maven XML (फ़ाइल pom.xml) और सख्त लाइफसाइकिल का उपयोग करता है। Gradle Groovy या Kotlin DSL (फ़ाइल build.gradle या build.gradle.kts) का उपयोग करता है, यह इंक्रीमेंटल बिल्ड के कारण अधिक लचीला और तेज़ है। इस लेख में हम दोनों टूल्स को कवर करेंगे, लेकिन Gradle पर अधिक फोकस करेंगे क्योंकि यह अधिक आधुनिक समाधान है।
Maven और Gradle की स्थापना (Installation)
Maven स्थापित करना
Maven pip या npm की तरह इंस्टॉल नहीं होता। इसे आधिकारिक वेबसाइट से डाउनलोड करना होता है या OS पैकेज मैनेजर से इंस्टॉल करना होता है।
# macOS (Homebrew)
brew install maven
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install maven
# Windows (Chocolatey)
choco install maven
# इंस्टॉलेशन जांचें
mvn --version
Gradle स्थापित करना
Gradle भी अलग से इंस्टॉल होता है। वर्जन मैनेज करने के लिए SDKMAN! का उपयोग करने की सलाह दी जाती है।
# SDKMAN इंस्टॉल करें (अगर नहीं है)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# नवीनतम Gradle वर्जन इंस्टॉल करें
sdk install gradle
# जांचें
gradle --version
# वैकल्पिक: https://gradle.org/releases/ से डाउनलोड करके अनज़िप करें
त्वरित शुरुआत: प्रोजेक्ट बनाना
Maven से प्रोजेक्ट बनाना
Maven आर्किटाइप (archetypes) के ज़रिए प्रोजेक्ट का स्केलेटन जनरेट कर सकता है।
# एक सरल Java प्रोजेक्ट बनाएं
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# प्रोजेक्ट फोल्डर में जाएं
cd my-app
# प्रोजेक्ट बिल्ड करें
mvn clean package
# रन करें (अगर main class सेट है)
java -cp target/my-app-1.0-SNAPSHOT.jar com.example.App
Gradle से प्रोजेक्ट बनाना
Gradle स्केलेटन बनाने के लिए init कमांड का उपयोग करता है।
# फोल्डर बनाएं और प्रोजेक्ट इनिशियलाइज़ करें
mkdir my-gradle-app
cd my-gradle-app
gradle init
# चुनें: 2: application -> 3: Java -> 1: Groovy DSL -> 2: JUnit Jupiter -> Enter
# बिल्ड और रन करें
./gradlew build
./gradlew run
इसके बाद आपके पास build.gradle (या Maven के लिए pom.xml) फ़ाइल और src/main/java व src/test/java फोल्डर के साथ प्रोजेक्ट स्ट्रक्चर होगा।
मुख्य तरीके/फंक्शन (Gradle DSL)
आइए Gradle (Groovy DSL) की प्रमुख कॉन्स्ट्रक्ट्स देखें। Maven के लिए ये समान हैं, लेकिन सिंटैक्स XML में होता है।
1. dependencies { ... }
क्या करता है: प्रोजेक्ट की डिपेंडेंसी को परिभाषित करता है - बाहरी लाइब्रेरी जो रिपॉजिटरी से डाउनलोड होंगी।
पैरामीटर: ब्लॉक के अंदर कॉन्फ़िगरेशन (implementation, testImplementation, compileOnly आदि) और लाइब्रेरी के कोऑर्डिनेट (group:name:version) बताए जाते हैं।
dependencies {
// मुख्य