संक्षिप्त उत्तर यह है: उपकरण एक ही चीज़ करते हैं लेकिन विभिन्न तरीकों से। अंतर यह है कि आप अपनी परियोजना बनाने के लिए कैसे उपयोग कर सकते हैं। अपाचे मेवेन "हमारे सम्मेलन का पालन करें" मार्ग के लिए जाता है और ग्रैडल आपको लचीलापन देता है। कुछ देव एक नया उपकरण नहीं चाहते हैं या आपके पास इसका सही तरीके से उपयोग करने का तरीका जानने के लिए समय नहीं है।
अब उत्तर है ...
ठीक से समझने के लिए क्यों कुछ devs अपाचे Maven से जुड़े होते हैं, पहले हमें कुछ साल देखने के लिए है।
Apache Maven
Gradle
की तरह एक निर्माण स्वचालन उपकरण है।
मेवेन 2004 को रिलीज़ हुआ। Gradle
पहला संस्करण 2007 में निकला, लेकिन शुरुआती दिनों में वह Maven
के रूप में लोकप्रिय नहीं हुआ। कुछ देवताओं को कुछ भी नया सीखना पसंद नहीं है और ज्यादातर कंपनियां ब्लॉक पर नए बच्चे के लिए पहले से चल रहे और महारत वाले उपकरण (Maven
) के आदान-प्रदान को जोखिम नहीं लेना चाहती हैं।
एंड्रॉइड विकास में वृद्धि होने पर ग्रैडल लोकप्रिय हो गया। एंड्रॉइड की परियोजना में जावा ईई/वेब परियोजनाओं से एक अलग परियोजना संरचना है। एंड्रॉइड की परियोजना पर मेवेन का उपयोग करने की कोशिश करना सिर्फ अप्राकृतिक लगता है, उपकरण लचीलापन प्रदान करने के लिए तैयार नहीं था।
अब तक, यदि आप पहले से ही मजबूर सम्मेलनों को जानते हैं तो अपाचे मैवेन को सरल जावा ईई परियोजनाओं पर गधे में दर्द के बिना इस्तेमाल किया जा सकता है। ऐसे देवताओं जो ग्रैडल के बारे में अवगत नहीं हैं/एंड्रॉइड ऐप्स के संपर्क में नहीं आये हैं, उनके पास किसी अन्य टूल में बदलने की प्रेरणा नहीं है।
मेरी राय में, Gradle
Apache Maven
से बेहतर है जिस तरह से आप कल्पना कर सकते हैं। यह आपको लचीलापन देता है और आपके रास्ते में नहीं पहुंचने का प्रयास करता है, एक "फीचर" जिसे आप Apache Maven
में नहीं ढूंढ सकते हैं। यदि आप Apache Maven
जीवन चक्र का पालन नहीं करते हैं, तो आपका निर्माण विफल हो जाएगा, यही वह है।
उदाहरण के लिए, यदि आप Gradle
का उपयोग कर रहे हैं तो आपके कोड को किसी भी प्रकार के लेआउट में कई निर्देशिकाओं में फैलाया जा सकता है। यदि आप Maven
पर हैं और आप 'सम्मेलन' का पालन नहीं करते हैं, तो आप अपने फ़ोल्डर संरचना को समझने और संभालने में सक्षम होने के लिए अपने पोम (Maven
की बिल्ड फ़ाइल) को बदलने में कुछ घंटे खो देंगे।
उदा। जावा स्रोत कोड src/main/java
फ़ोल्डर पर होना चाहिए। अगर आपको पुरानी परियोजना मिली है और संरचना src/java
है, क्षमा करें, आपको कोई गारंटी नहीं है कि सभी मेवेन प्लगइन्स अपेक्षित के रूप में चलेंगे।
Gradle
हमें एक पक्ष है और एक बहुत संगठित चार्ट में तुलना करने के लिए और अधिक सुविधाएं प्रदान करता है। जरा देखो तो। https://gradle.org/maven_vs_gradle/