2009-03-29 19 views
5

मैं समझने की कोशिश कर रहा हूं कि चींटी का क्या उपयोग किया जाता है लेकिन मुझे अभी भी यह नहीं मिला है।चींटी का उपयोग कैसे करें?

क्या कोई मुझे एक उपयोग केस दे सकता है जिसके लिए चींटी का उपयोग किया जाता है, कुछ मैं यह देखने की कोशिश कर सकता हूं कि चींटी उपयोगी क्यों है और मैं किस प्रकार की चीजों का उपयोग कर सकता हूं?

मैं एक्लिप्स में जावा विकास करता हूं और मैं बस servlets और Google वेब टूलकिट के साथ शुरू कर रहा हूं।

+1

प्रभावी ढंग से http://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –

+0

का डुप्लिकेट (कि कि सवाल का जवाब इस सवाल का सीधे जवाब।) –

उत्तर

17

चींटी एक निर्माण उपकरण है। उदाहरण के लिए कहें कि आपके ग्रहण कार्यक्षेत्र में कई परियोजनाएं हैं, जिनमें से सभी बड़े आवेदन के टुकड़े हैं। इसे सभी निर्भरताओं के साथ एक जार फ़ाइल में बनाने के लिए, आप सभी परियोजनाओं का चयन कर सकते हैं और उन्हें एक जार फ़ाइल के रूप में निर्यात कर सकते हैं, लेकिन यह कुछ हद तक बोझिल है।

चींटी एक एक्स्टेंसिबल समाधान है। आप XML में निर्माण प्रक्रिया को परिभाषित करते हैं, और चींटी इस जावास्क्रिप्ट को आपके नुस्खा के अनुसार संकलित करती है।

चींटी इमारत से भी अधिक कर सकती है। मैंने एक ऐसी कंपनी में काम किया जहां परिनियोजन के लिए तंत्र हमारे स्वयं के भंडार में डेबियन पैकेज था। हमारे पास चींटी स्क्रिप्ट थीं जो जार फ़ाइलों का निर्माण करती थीं, उन्हें और कुछ मेटाडाटा फ़ाइलों को डेबियन पैकेज में व्यवस्थित करती थीं, उन्हें भंडार में डाल देती थीं, और रिपोजिटरी मैनिफेस्ट को पुन: उत्पन्न करती थीं।

कुछ भी जावा के साथ, एंटी के साथ कुशल होने से पहले आपको अपने सिर को पाने के लिए बहुत सारी कॉन्फ़िगरेशन की आवश्यकता होती है, लेकिन कुछ बुनियादी ट्यूटोरियल आपको यह समझने चाहिए कि आप स्वयं को क्या प्राप्त कर रहे हैं।

4

चींटी का उपयोग किया जाता है, क्योंकि कोई भी उपकरण आपके कोड के निर्माण के दोहराव वाले कार्यों को स्वचालित करने के लिए होता है।

प्रत्येक बार हाथ से जावैक चलाने की बजाय आप एक एंटी स्क्रिप्ट में एक कमांड डालते हैं और फिर जब आप चींटी चलाते हैं तो यह आपके लिए जावैक चलाएगा। स्रोत पर

  • रन javac tets
  • स्रोत (इस कोड को कवर करने के लिए है पर Cobertura उपकरण चलाने पर
  • रन javac:

    मेरे चींटी के साथ ठेठ निर्माण प्रक्रिया कुछ इस तरह चला जाता है)

  • जार अप स्रोत से कक्षाएं
  • जार अप Cobertura instrumented कक्षाएं
  • जार अप यू निट परीक्षण कक्षाओं
  • रन checkstyle, PMD, स्रोत पर FindBugs चेतावनी लगता है
  • उनमें से कोड कवरेज पाने के लिए Cobertura के माध्यम से इकाई परीक्षण चलाने के

ताकि 8 चरण हैं, जो मैं एक पर किया है निर्माण करें कि मैं "चींटी" चलाकर बस कर सकता हूं।

2

चींटी एक एक्सएमएल आधारित मेक फ़ाइल है।

यदि आप एक ऐसे डेवलपर हैं जो पहले से ही ईक्लीप्स जैसे आईडीई का उपयोग करके सफलतापूर्वक कोड बनाते हैं और संकुल कोड बनाते हैं तो आपको एंटी का उपयोग करके अधिक लाभ दिखाई नहीं देगा।

बड़ा लाभ तब आता है जब आपके पास कोड पर सहयोग करने वाली टीम होती है। यदि आप क्रूज़ कंट्रोल या कुछ अन्य निरंतर एकीकरण सुविधा का उपयोग करते हैं तो आपको एक बड़ा बढ़ावा मिलेगा। सीसी के लिए एक चींटी build.xml की आवश्यकता है।

0

यह एएनटी दस्तावेज से है और इसे बहुत अच्छी तरह से समझाता है।

क्यों एक और निर्माण उपकरण, जब वहाँ पहले से ही करते हैं, gnumake nmake, जैम, और दूसरों? चूंकि उन सभी उपकरणों में सीमाएं हैं जो चींटी के मूल लेखक कई प्लेटफॉर्म पर सॉफ़्टवेयर विकसित करते समय नहीं रह सके। मेक-जैसे टूल स्वाभाविक रूप से शैल-आधारित हैं: वे निर्भरताओं के सेट का मूल्यांकन करते हैं, फिर आदेशों को निष्पादित करें जो आप खोल पर जारी करेंगे। इसका अर्थ यह है कि आप आसानी से ओएस के लिए किसी भी प्रोग्राम का उपयोग करके या लिखकर इन उपकरणों का विस्तार कर सकते हैं कि आप पर काम कर रहे हैं; हालांकि, इसका अर्थ है कि आप ओएस, या कम से कम ओएस प्रकार, जैसे यूनिक्स, पर काम कर रहे हैं, पर आप स्वयं को सीमित करते हैं।

मेकफ़ाइल स्वाभाविक रूप से भी बुराई हैं। कोई भी जिसने समय के लिए उन पर काम किया है, वह डरावनी टैब समस्या में चला गया है। "क्या मेरा आदेश निष्पादित नहीं कर रहा है क्योंकि मेरे पास टैब के सामने एक जगह है? !!" चींटी लेखक के मूल लेखक ने कई बार कहा। जाम जैसे टूल्स ने इसकी एक बड़ी डिग्री पर ध्यान दिया लेकिन अभी भी का उपयोग करने और याद रखने के लिए एक और प्रारूप है।

चींटी अलग है। मॉडल के बजाय जहां इसे खोल-आधारित आदेशों के साथ बढ़ाया गया है, एंटी जावा कक्षाओं का उपयोग करके बढ़ाया गया है। खोल कमांड लिखने के बजाय, कॉन्फ़िगरेशन फ़ाइलें एक्सएमएल-आधारित हैं, एक लक्षित पेड़ पर कॉल करते हैं जहां विभिन्न कार्य निष्पादित होते हैं। प्रत्येक कार्य किसी ऑब्जेक्ट द्वारा चलाया जाता है जो एक विशेष कार्य इंटरफ़ेस लागू करता है।

दी, इस अर्थपूर्ण शक्ति है कि find . -name foo -exec rm {} के रूप में एक खोल आदेश में इस तरह के निर्माण करने में सक्षम किया जा रहा में निहित है में से कुछ को हटा, लेकिन यह आप पार मंच होने की क्षमता देता है - कहीं भी और हर जगह काम करने के लिए । और हे, अगर आपको वास्तव में एक खोल कमांड निष्पादित करने की आवश्यकता है, तो एंटी का एक कार्य है कि विभिन्न आदेशों को को ओएस के आधार पर निष्पादित करने की अनुमति देता है, यह निष्पादित है।

संबंधित मुद्दे