जावा के लिए सबसे अच्छा निर्माण उपकरण अब तक जानता है मैवेन,क्या जावा के लिए सेमेक की तरह एक उपकरण बहुत अधिक है?
लेकिन यह अभी भी cmake के रूप में इतना लचीलापन नहीं देता है!
कोई भी जावा के लिए एक सेमेक-समान उपकरण जानता है?
जावा के लिए सबसे अच्छा निर्माण उपकरण अब तक जानता है मैवेन,क्या जावा के लिए सेमेक की तरह एक उपकरण बहुत अधिक है?
लेकिन यह अभी भी cmake के रूप में इतना लचीलापन नहीं देता है!
कोई भी जावा के लिए एक सेमेक-समान उपकरण जानता है?
यह शायद stacoverflow.com के लिए एक बेहतर सवाल है, लेकिन मैं Ant की अनुशंसा करता हूं। यह बहुत मजबूत और लचीला है।
चींटी और मेवेन बहुत बढ़िया निर्माण उपकरण हैं। मेवेन के साथ, यदि आप कस्टम बिल्ड करना चाहते हैं, तो आपको शायद अपनी खुद की मेवेन प्लगइन लिखनी पड़ेगी जो कि मुश्किल नहीं है। अपनी खुद की प्लगइन बनाने के लिए ऑनलाइन दस्तावेज़ों का भार है। एक मेवेन प्लगइन बनाने के बारे में अच्छी बात यह है कि किसी संगठन में या डेवलपर्स की टीम के साथ साझा करना आसान है; इन प्लगइन्स को साझा करें, आपको आम तौर पर अपने स्वयं के मैवेन रेपो को होस्ट करने की आवश्यकता होती है।
चींटी वास्तव में काफी लचीली है क्योंकि इसमें इमारत, चलने वाले परीक्षण, आसपास की फ़ाइलों को स्थानांतरित करने, रेपो से कोड की जांच करने और यहां तक कि रिमोट सर्वर पर कमांड निष्पादित करने सहित कुछ भी करने के लिए टैग का वास्तव में व्यापक सेट है। मेरी राय में, जब आपको कस्टम बिल्ड करना होता है तो चींटी काम करना थोड़ा आसान होता है। चींटी के साथ समस्या यह है कि एक तेज़ मॉड्यूल में बनाना मुश्किल है जिसे आप साझा कर सकते हैं और कॉन्फ़िगर कर सकते हैं जैसे आप एक मेवेन प्लगइन के साथ कर सकते हैं।
आईवी एक और लोकप्रिय निर्माण उपकरण है, हालांकि, मुझे इसका कोई अनुभव नहीं है।
इस पूछना होगा आइवी एक buld उपकरण नहीं है, यह सिर्फ एक निर्भरता प्रबंधन उपकरण है जो चींटी के साथ बहुत अच्छा खेलता है (यह के लिए देशी समर्थन प्रदान करता है)। –
मैं जानता हूँ कि जावा के लिए सबसे अच्छा निर्माण उपकरण अब तक Maven प्रतीत हो रहा है, लेकिन यह अभी भी बिल्कुल cmake के रूप में इतना लचीलापन नहीं देता!
यह सच हो सकता है, लेकिन मैं पूछूंगा कि आपको वास्तव में "लचीलापन" की आवश्यकता है या नहीं। मेवेन का सबसे बड़ा मूल्य यह है कि यह विकास को मानकीकृत करता है। जिस तरह से स्रोत/संसाधन, निर्भरता प्रबंधित की जाती है, अच्छी तरह परिभाषित जीवन-चक्र इत्यादि।
यह मानकीकरण के कारण है कि आप बिल्ड सर्वर, आईडीई, स्वचालित परीक्षण उपकरण और कई अन्य टूल आसानी से जोड़ सकते हैं। इसके अलावा, नए डेवलपर्स को कोड बेस से परिचित होना आसान लगता है क्योंकि उन्हें पता है कि किस संरचना की अपेक्षा की जा सकती है।
यदि आपके पास "लचीला" निर्माण है, तो क्या वे लाभ खो जाएंगे, हालांकि, क्या आप वास्तव में ऐसे "लचीले" निर्माण से कुछ हासिल करने जा रहे हैं? बहुत से लोग मेवेन का उपयोग कर रहे हैं, और लगभग सभी समस्याओं के लिए उन्होंने पहले से ही एक समाधान बनाया है। यदि आप उन मानकीकृत समाधानों का उपयोग करने का प्रयास करते हैं, तो आपको IMHO के निर्माण के साथ बहुत कम परेशानी होगी।
क्या आपके पास ऐसी दुर्लभ स्थिति है जिसमें आपको वास्तव में कुछ ऐसा करने की ज़रूरत है जो मानक तरीके से नहीं किया जा सकता है, फिर भी आप स्क्रिप्ट/चींटी कार्यों आदि को मेवेन में हुक कर सकते हैं और कस्टम प्लगइन्स भी लिख सकते हैं। लेकिन मुझे सच में संदेह है कि आपको कभी ऐसा करने की ज़रूरत होगी।
सीएमके में निर्भरताओं की कोई अवधारणा नहीं है (केवल फाइलों या साझा पुस्तकालयों को ऑब्जेक्ट करने के लिए स्रोतों की निर्भरताओं पर) लेकिन आर्टिफैक्ट स्तर (जैसे जावा में जार की तरह) या आरपीएम आदि पर नहीं। मैं इसे मॉड्यूल निर्भरता कहूंगा। सीएमके में ट्रांजिटिव निर्भरता आदि की अवधारणा नहीं है। सीएमके में एक परियोजना (कॉन्फ़िगरेशन पर सम्मेलन) की परिभाषित संरचना की कोई अवधारणा नहीं है। सीएमके में एक भंडार की कोई अवधारणा नहीं है (जैसे मेवेन है)। सीएमके को एकीकृत इकाई/एकीकरण परीक्षण का कोई समर्थन नहीं है। कोई परिभाषित बिल्ड जीवन चक्र नहीं। सीएमके में रिलीज मैनेजमेंट (जो मैवेन इत्यादि) की कोई अवधारणा नहीं है।
but it still doesn't give so much flexibility as cmake at all!
मैवेन में आप वास्तव में क्या याद करते हैं?
यह मजाकिया है कि लोग वास्तविकता के एक ही टुकड़े को कैसे देख सकते हैं और पूरी तरह विपरीत चीजें देख सकते हैं। इन सभी चीजों के "अवधारणा" को सहेजना वास्तव में कम लचीला बनाता है: आप मेवेन अवधारणाओं से विचलित नहीं हो सकते हैं या आसानी से नए जोड़ सकते हैं। जबकि सीएमके आपको पूरी तरह से कुछ भी करने की इजाजत देता है, लेकिन इसे सभी काम एक साथ करने के लिए रचनात्मक रूप से कठिन जटिल बन जाता है। –
लचीलापन जिसके बारे में आप बात कर रहे हैं, बड़े प्रोजेक्ट में एक गड़बड़ी बनाता है (एक अलग विकास परियोजना बनाएं: बिल्ड), जिससे आपके पास बनाए रखने के लिए और अधिक लचीलापन होता है। मेवेन के पास नौकरी करने के लिए पर्याप्त लचीलापन है। ऐसी स्थितियां हो सकती हैं जहां आप सीमा तक पहुंच जाएं, लेकिन फिर आप एक प्लगइन बना सकते हैं। आप कह रहे हैं कि आप आसानी से कुछ भी कर सकते हैं? एचएम ... इसका मतलब है कि दूसरी ओर आपको इन परियोजनाओं में पहली बार इन या समान अवधारणाओं को परिभाषित करना होगा और यह समय लेने वाला है। – khmarbaise
@khmarbaise: लचीलापन की कमी बड़ी परियोजना को गड़बड़ कर रही है क्योंकि मेवेन लेखक हर परियोजना को संतुष्ट नहीं कर सकते हैं (वास्तव में, मेवेन केवल छोटी खिलौनों की परियोजनाओं के लिए अच्छा है)। कस्टम प्लगइन्स सरल लक्ष्य प्राप्त करने का कठिन तरीका है जिसे आप सरल खोल स्क्रिप्ट के साथ कर सकते हैं। और निर्भरता ... अच्छी तरह से, लिनक्स पैकेज प्रबंधकों जैसे इतिहास से कुछ अच्छे उदाहरण हैं। फिर भी मेवेन खिलौने डेवलपर्स ने इसे सबसे खराब तरीके से खराब कर दिया। इसे "निर्भरता प्रबंधक" को कॉल करना वास्तविक पैकेज प्रबंधक का अपमान है। और रिलीज प्रबंधन सिर्फ अच्छा buzzword है। मैं कुछ पंक्तियों में लिपि कर सकता हूं। – woky
बस अपनी रुचि के लिए। मैंने सीएमके में जावा समर्थन विकसित किया है। यह संस्करण 2.8.6 के बाद उपलब्ध है।
भी देखें https://blog.cryptomilk.org/2011/01/15/cmake-java-support/
मैं पर stackoverflow.com – Unfundednut