maven - निर्णायक बनाम घोषणात्मक बिल्ड सिस्टम




ant gradle (2)

संक्षेप में, एक चींटी स्क्रिप्ट , चींटी उपकरण को बताती है कि - "इन फाइलों को संकलित करें और फिर उन्हें उस फ़ोल्डर में प्रतिलिपि करें। इसके बाद इस फ़ोल्डर की सामग्री लें और एक संग्रह बनाएँ।"

जबकि एक मेवेन pom घोषित करता है कि हम परिणाम के रूप में क्या चाहते हैं - "यहां पुस्तकालयों के नाम हैं, इस परियोजना पर निर्भर है, और हम एक वेब संग्रह जेनरेट करना चाहते हैं"। मेवेन जानता है कि कैसे पुस्तकालयों को प्राप्त करना है और स्रोत वर्ग को उस पर स्वयं कैसे प्राप्त करना है

जबकि चींटी आपको अधिक लचीलापन देती है, यह आपको लगातार पहिये को फिर से बदलने के लिए मजबूर करता है

दूसरी तरफ मेवेन को कम कॉन्फ़िगरेशन की आवश्यकता होती है, लेकिन यह भी बाधित महसूस कर सकता है, खासकर यदि आप किसी भिन्न वर्कफ़्लो के लिए उपयोग किए जाते हैं

संपादित करें: एंट-मेवेन तुलना का एक महत्वपूर्ण पहलू यह है कि मेवेन में एक सम्मेलन है , जहां फाइलें झूठ होनी चाहिए, जहां निर्भरता पाई जाती है, जिसके परिणामस्वरूप आर्टिफैक्ट डालते हैं, जबकि चींटी नहीं है।

तो आप एक बस की सवारी जैसे मैवेन का उपयोग करने के बारे में सोच सकते हैं - आप जहां आप में प्रवेश करते हैं और जहां आप छोड़ते हैं वहां का चयन करें चींटी का इस्तेमाल गाड़ी चलाने की तरह है - आपको इसे खुद करना है आपको बस चालक को क्या करना है, यह बताने की ज़रूरत नहीं है, लेकिन स्टॉप बहुत दूर से हो सकता है जहां आप जाना चाहते हैं।

ईडीआईटी 2: 'पहिया को फिर से बदलने वाला' रूपक मुझे उम्मीद से कम स्पष्ट लगता है। मेरा मतलब यह है:

समझदार चूक / सम्मेलनों के बिना, आपको प्रत्येक परियोजना के लिए स्पष्ट रूप से परियोजना संरचना और निर्माण जीवन चक्र को परिभाषित करना होगा, अक्सर इसे स्वाद और राय का मामला बनाते हैं। वरीयताओं के रूप में टीमों और कंपनियों के बीच भिन्नता है, इसलिए प्रक्रियाओं का निर्माण करना है इसके लिए नए प्रोजेक्ट सदस्यों और बाद में रख-रखावों के लिए अधिक संज्ञानात्मक प्रयास की आवश्यकता होती है। डेवलपर्स के अनुभव और विशेषज्ञता के आधार पर, अंतिम समाधान का विस्तार और उपयोग करना कठिन हो सकता है

जैसा कि मैंने नीचे दी गई टिप्पणी में कहा, जबकि चींटी के लिए सर्वोत्तम प्रथाएं मौजूद हैं, फिर भी वे प्रत्येक प्रोजेक्ट के लिए कार्यान्वित की जानी चाहिए, या परियोजना के प्रोजेक्ट से कॉपी-चिपकाएंगे, बंडल के आउट-द-बॉक्स डिफ़ॉल्ट बनने के बजाय उपकरण ही

मैवेन मेरे स्वाद के लिए ट्रेड-ऑफ की दूसरी तरफ बहुत दूर है। डिफ़ॉल्ट को बदलना उतना ही आसान नहीं है जितना संभव हो सके और होना चाहिए।

मैंने हाल ही में एक बिल्ड सिस्टम के रूप में ग्रेडल का उपयोग करना शुरू कर दिया है। वे पहली तुलना करते हैं कि ग्रेडल चींटी और मेवेन की पसंद के साथ बनाता है, चींटी अनिवार्य निर्माण प्रणाली है, जबकि मेवेन एक घोषणात्मक निर्माण प्रणाली है जबकि मेडेन द्वारा लागू कठोरता के बिना ग्रैडल एक घोषणात्मक बिल्ड सिस्टम है

सिस्टम बनाने के बारे में बात करने के लिए जब मैं इन शर्तों को घोषणात्मक और बेहतर समझना चाहता हूं


चरण 1:

cordova\platforms\android जाएं cordova\platforms\android चींटी keystore फ़ाइल जानकारी के साथ ant.properties फ़ाइल नामक एक फ़ाइल ant.properties (यह कीस्टोर आपके पसंदीदा एंड्रॉइड एसडीके, स्टूडियो से उत्पन्न किया जा सकता है ...):

key.store=C:\\yourpath\\Yourkeystore.keystore
key.alias=youralias

चरण 2:

कॉर्डोवा पथ पर जाएं और निष्पादित करें:

cordova build android --release

नोट: आपको अपने कीस्टोर और कुंजी पासवर्ड से पूछने के लिए कहा जाएगा

एक YourApp-release.apk \cordova\platforms\android\ant-build में दिखाई देगा





maven ant gradle