अपाचे एंट: Difference between revisions

From Vigyanwiki
No edit summary
Line 1: Line 1:
{{short description|Java software tool}}
{{short description|Java software tool}}
{{refimprove|date=July 2020}}
{{Infobox software
{{Infobox software
| name = Apache Ant
| name = Apache Ant
Line 19: Line 18:
| license = [[Apache License 2.0]]
| license = [[Apache License 2.0]]
}}
}}
'''अपाचे एंट''' सॉफ्टवेयर निर्माण प्रक्रियाओं को स्वचालित करने के लिए एक सॉफ्टवेयर उपकरण है<ref>{{Cite web|title=अपाचे चींटी - स्वागत है|url=https://ant.apache.org/|access-date=2022-01-25|website=ant.apache.org}}</ref> जो [[यूनिक्स]] के मेक बिल्ड टूल के प्रतिस्थापन के रूप में 2000 की शुरुआत में [[अपाचे टॉमकैट]] परियोजना से उत्पन्न हुआ था।<ref>{{Cite web|title=अपाचे चींटी - अक्सर पूछे जाने वाले प्रश्न|url=https://ant.apache.org/faq.html#history|access-date=2022-01-25|website=ant.apache.org}}</ref> यह मेक के समान है, लेकिन इसे जावा भाषा का उपयोग करके लागू किया जाता है और इसके लिए जावा प्लेटफ़ॉर्म की आवश्यकता होती है। मेक के विपरीत, जो मेकफ़ाइल प्रारूप का उपयोग करता है, एंट कोड निर्माण प्रक्रिया और उसकी निर्भरता का वर्णन करने के लिए [[XML]] का उपयोग करता है।{{sfn | Moodie | 2005 | loc = Chapter §1 Introducing Ant| pp=5-9}}
'''अपाचे एंट''' सॉफ्टवेयर निर्माण प्रक्रियाओं को स्वचालित करने के लिए एक सॉफ्टवेयर उपकरण है<ref>{{Cite web|title=अपाचे चींटी - स्वागत है|url=https://ant.apache.org/|access-date=2022-01-25|website=ant.apache.org}}</ref> जो [[यूनिक्स]] के मेक बिल्ड टूल के प्रतिस्थापन के रूप में 2000 की शुरुआत में [[अपाचे टॉमकैट]] परियोजना से उत्पन्न हुआ था।<ref>{{Cite web|title=अपाचे चींटी - अक्सर पूछे जाने वाले प्रश्न|url=https://ant.apache.org/faq.html#history|access-date=2022-01-25|website=ant.apache.org}}</ref> यह मेक के समान है, लेकिन इसे जावा भाषा का उपयोग करके प्रयुक्त किया जाता है और इसके लिए जावा प्लेटफ़ॉर्म की आवश्यकता होती है। मेक के विपरीत, जो मेकफ़ाइल प्रारूप का उपयोग करता है, एंट कोड निर्माण प्रक्रिया और उसकी निर्भरता का वर्णन करने के लिए [[XML]] का उपयोग करता है।{{sfn | Moodie | 2005 | loc = Chapter §1 Introducing Ant| pp=5-9}}


[[अपाचे सॉफ्टवेयर फाउंडेशन]] द्वारा [[अपाचे लाइसेंस]] के तहत जारी किया गया, एंट एक ओपन-सोर्स प्रोजेक्ट है।
[[अपाचे सॉफ्टवेयर फाउंडेशन]] द्वारा [[अपाचे लाइसेंस]] के तहत जारी किया गया, एंट एक ओपन-सोर्स प्रोजेक्ट है।


==इतिहास==
==इतिहास==
एंट ("एक और नीट टूल")<ref>{{cite web | url=https://ant.apache.org/faq.html#ant-name | title=Why do you call it Ant? – Apache Ant FAQ}}</ref> की कल्पना [[जेम्स डंकन डेविडसन]] ने [[सन माइक्रोसिस्टम्स]] के संदर्भ जेएसपी और [[सर्वलेट]] इंजन, बाद में अपाचे टॉमकैट को ओपन-सोर्स के रूप में रिलीज के लिए तैयार करते समय की थी। इसे [[सोलारिस (ऑपरेटिंग सिस्टम)|सोलारिस]] प्लेटफॉर्म पर बनाने के लिए मेक के एक मालिकाना संस्करण का उपयोग किया गया था, लेकिन ओपन-सोर्स दुनिया में, यह नियंत्रित करने का कोई तरीका नहीं था कि टॉमकैट को बनाने के लिए किस प्लेटफॉर्म का उपयोग किया गया था; इसलिए चींटी को XML "बिल्ड फ़ाइल" में निर्देशों से टॉमकैट बनाने के लिए एक सरल प्लेटफ़ॉर्म-स्वतंत्र टूल के रूप में बनाया गया था। एंट (संस्करण 1.1) को आधिकारिक तौर पर 19 जुलाई, 2000 को एक स्टैंडअलोन उत्पाद के रूप में जारी किया गया था।
एंट ("एक और नीट टूल")<ref>{{cite web | url=https://ant.apache.org/faq.html#ant-name | title=Why do you call it Ant? – Apache Ant FAQ}}</ref> की कल्पना [[जेम्स डंकन डेविडसन]] ने [[सन माइक्रोसिस्टम्स]] के संदर्भ जेएसपी और [[सर्वलेट]] इंजन, बाद में अपाचे टॉमकैट को ओपन-सोर्स के रूप में रिलीज के लिए तैयार करते समय की थी। इसे [[सोलारिस (ऑपरेटिंग सिस्टम)|सोलारिस]] प्लेटफॉर्म पर बनाने के लिए मेक के एक मालिकाना संस्करण का उपयोग किया गया था, लेकिन ओपन-सोर्स दुनिया में, यह नियंत्रित करने का कोई तरीका नहीं था कि टॉमकैट को बनाने के लिए किस प्लेटफॉर्म का उपयोग किया गया था; इसलिए एंट को XML "बिल्ड फ़ाइल" में निर्देशों से टॉमकैट बनाने के लिए एक सरल प्लेटफ़ॉर्म-स्वतंत्र टूल के रूप में बनाया गया था। एंट (संस्करण 1.1) को आधिकारिक तौर पर 19 जुलाई, 2000 को एक स्टैंडअलोन उत्पाद के रूप में जारी किया गया था।


एंट संस्करण 2 के लिए कई प्रस्ताव दिए गए हैं, जैसे जेम्स डंकन डेविडसन द्वारा एंटईटर, पीटर डोनाल्ड द्वारा मायर्मिडॉन <ref>Peter Donald.
एंट संस्करण 2 के लिए कई प्रस्ताव दिए गए हैं, जैसे जेम्स डंकन डेविडसन द्वारा एंटईटर, पीटर डोनाल्ड द्वारा मायर्मिडॉन <ref>Peter Donald.
[http://svn.apache.org/repos/asf/ant/core/tags/ANT_13_B1/proposal/myrmidon/src/xdocs/design.html "Myrmidon: The Ant2.0 Proposal"].</ref> और कॉनर मैकनील द्वारा म्यूटेंट, जिनमें से किसी को भी डेवलपर समुदाय के साथ बड़ी स्वीकृति नहीं मिल पाई थी।<ref>{{cite web | url=http://codefeed.com/blog/?p=98 | title=चींटी विकास का प्रारंभिक इतिहास| first=Conor | last=MacNeill}}</ref>
[http://svn.apache.org/repos/asf/ant/core/tags/ANT_13_B1/proposal/myrmidon/src/xdocs/design.html "Myrmidon: The Ant2.0 Proposal"].</ref> और कॉनर मैकनील द्वारा म्यूटेंट, जिनमें से किसी को भी डेवलपर समुदाय के साथ बड़ी स्वीकृति नहीं मिल पाई थी।<ref>{{cite web | url=http://codefeed.com/blog/?p=98 | title=चींटी विकास का प्रारंभिक इतिहास| first=Conor | last=MacNeill}}</ref>


एक समय (2002) में, एंट अधिकांश जावा विकास परियोजनाओं द्वारा उपयोग किया जाने वाला निर्माण उपकरण था।<ref>{{cite book | title=एक्सट्रीम प्रोग्रामिंग के लिए जावा टूल्स| author=Wiley | year=2002 | page=76}}</ref> उदाहरण के लिए, अधिकांश ओपन-सोर्स जावा डेवलपर्स ने अपने वितरण के साथ <code>build.xml</code>फाइलें शामिल कीं। क्योंकि चींटी ने बिल्ड प्रक्रिया के साथ जुनीट परीक्षणों को एकीकृत करना आसान बना दिया था, चींटी ने डेवलपर्स को परीक्षण-संचालित विकास और एक्सट्रीम प्रोग्रामिंग को अपनाने की अनुमति दी थी।
एक समय (2002) में, एंट अधिकांश जावा विकास परियोजनाओं द्वारा उपयोग किया जाने वाला निर्माण उपकरण था।<ref>{{cite book | title=एक्सट्रीम प्रोग्रामिंग के लिए जावा टूल्स| author=Wiley | year=2002 | page=76}}</ref> उदाहरण के लिए, अधिकांश ओपन-सोर्स जावा डेवलपर्स ने अपने वितरण के साथ <code>build.xml</code>फाइलें शामिल कीं। क्योंकि एंट ने बिल्ड प्रक्रिया के साथ जुनीट परीक्षणों को एकीकृत करना आसान बना दिया था, एंट ने डेवलपर्स को परीक्षण-संचालित विकास और एक्सट्रीम प्रोग्रामिंग को अपनाने की अनुमति दी थी।


2004 में अपाचे ने इसी उद्देश्य से मावेन नामक एक नया टूल बनाया।
2004 में अपाचे ने इसी उद्देश्य से मावेन नामक एक नया टूल बनाया।
Line 36: Line 35:


==एक्सटेंशन==
==एक्सटेंशन==
WOप्रोजेक्ट-चींटी<ref>{{cite web|url=http://www.objectstyle.org/confluence/display/WOL/WOProject-Ant |title=WOProject-Ant – WOProject / WOLips – Confluence |url-status=dead |archive-url=https://web.archive.org/web/20090108131210/http://www.objectstyle.org/confluence/display/WOL/WOProject-Ant |archive-date=2009-01-08 }}<!-- Bot generated title --></ref> चींटी के लिए लिखे गए कार्य एक्सटेंशन के कई उदाहरणों में से एक है। ये एक्सटेंशन उनकी कॉपी करके इंस्टॉल किए जाते हैं <code>.jar</code> चींटियों में फ़ाइलें <code>lib</code> निर्देशिका। एक बार यह हो जाने के बाद, इन कार्य एक्सटेंशनों को सीधे सामान्य रूप से लागू किया जा सकता है <code>build.xml</code> फ़ाइल। WOProject एक्सटेंशन, [[WebObjects]] डेवलपर्स को Apple कंप्यूटर|Apple के [[Xcode]] सुइट का उपयोग करने के बजाय, अपने फ्रेमवर्क और ऐप्स के निर्माण में चींटी का उपयोग करने की अनुमति देते हैं।
डब्ल्यूओप्रोजेक्ट-एंट<ref>{{cite web|url=http://www.objectstyle.org/confluence/display/WOL/WOProject-Ant |title=WOProject-Ant – WOProject / WOLips – Confluence |url-status=dead |archive-url=https://web.archive.org/web/20090108131210/http://www.objectstyle.org/confluence/display/WOL/WOProject-Ant |archive-date=2009-01-08 }}<!-- Bot generated title --></ref>, एंट के लिए लिखे गए कार्य एक्सटेंशन के कई उदाहरणों में से एक है। ये एक्सटेंशन उनकी <code>.jar</code>फ़ाइलों को एंट की <code>lib</code> निर्देशिका में कॉपी करके इंस्टॉल किए जाते हैं। एक बार यह हो जाने के बाद, इन कार्य एक्सटेंशनों को सीधे विशिष्ट <code>build.xml</code> फ़ाइल में प्रयुक्त किया जा सकता है। डब्ल्यूओप्रोजेक्ट एक्सटेंशन एप्पल के एक्सकोड सुइट का उपयोग करने के बजाय, वेबऑब्जेक्ट्स डेवलपर्स को अपने फ्रेमवर्क और ऐप्स के निर्माण में एंट का उपयोग करने की अनुमति देते हैं।


<code>Antcontrib</code><ref>{{cite web | url=http://ant-contrib.sourceforge.net | title=Ant-Contrib}}</ref> सशर्त विवरण और संपत्तियों पर संचालन के साथ-साथ अन्य उपयोगी कार्यों जैसे कार्यों का एक संग्रह प्रदान करता है।<ref>{{cite web | url=http://ant-contrib.sourceforge.net/tasks/tasks/index.html | title=Ant-Contrib Tasks}}</ref>{{sfn | Moodie | 2005 | loc = Chapter §10 Writing Custom Tasks - Using Third-Party Custom Tasks | pp=266-267}}
<code>Antcontrib</code><ref>{{cite web | url=http://ant-contrib.sourceforge.net | title=Ant-Contrib}}</ref> सशर्त विवरण और संपत्तियों पर संचालन के साथ-साथ अन्य उपयोगी कार्यों जैसे कार्यों का एक संग्रह प्रदान करता है।<ref>{{cite web | url=http://ant-contrib.sourceforge.net/tasks/tasks/index.html | title=Ant-Contrib Tasks}}</ref>{{sfn | Moodie | 2005 | loc = Chapter §10 Writing Custom Tasks - Using Third-Party Custom Tasks | pp=266-267}}


<code>Ant-contrib.unkrig.de</code><ref>{{cite web | url=http://ant-contrib.unkrig.de | title=ant-contrib.unkrig.de}}</ref> नेटवर्किंग, [[स्विंग (जावा)]] यूजर इंटरफेस, [[JSON]] प्रोसेसिंग और अन्य के लिए कार्यों और प्रकारों को लागू करता है।
<code>Ant-contrib.unkrig.de</code><ref>{{cite web | url=http://ant-contrib.unkrig.de | title=ant-contrib.unkrig.de}}</ref> नेटवर्किंग, [[स्विंग (जावा)]] यूजर इंटरफेस, [[JSON]] प्रोसेसिंग और अन्य के लिए कार्यों और प्रकारों को प्रयुक्त करता है।
 
[[ख़ामख़ाह]], .NET फ्रेमवर्क, [[ईजेबी]] और फाइल सिस्टम मैनिपुलेशन के लिए अन्य कार्य एक्सटेंशन मौजूद हैं।<ref>{{cite web | url=https://ant.apache.org/manual/tasksoverview.html | title=Overview of Ant Tasks}}<!-- Bot generated title --></ref>
 


विवशतापूर्वक, .NET फ्रेमवर्क, [[ईजेबी]] और फ़ाइल सिस्टम परिवर्तन के लिए अन्य कार्य एक्सटेंशन उपस्थित हैं।<ref>{{cite web | url=https://ant.apache.org/manual/tasksoverview.html | title=Overview of Ant Tasks}}<!-- Bot generated title --></ref>
==उदाहरण==
==उदाहरण==
नीचे एक नमूना सूचीबद्ध है <code>build.xml</code> एक सरल जावा हैलो, वर्ल्ड एप्लिकेशन के लिए फ़ाइल। यह चार लक्ष्य परिभाषित करता है - <code>clean</code>,{{sfn | Moodie | 2005 | loc = Chapter §5 Building a Project - Assembling the project - Manipulating the File Location | pp=121-125}} <code>clobber</code>, <code>compile</code> और <code>jar</code> , जिनमें से प्रत्येक का एक संबद्ध विवरण है। <code>jar</code> ई> लक्ष्य सूचीबद्ध करता है <code>compile</code> निर्भरता के रूप में लक्ष्य करें। यह चींटी को बताता है कि इससे पहले कि वह शुरू कर सके <code>jar</code> लक्ष्य इसे पहले पूरा करना होगा <code>compile</code> लक्ष्य।
नीचे एक नमूना सूचीबद्ध है <code>build.xml</code> एक सरल जावा हैलो, वर्ल्ड एप्लिकेशन के लिए फ़ाइल। यह चार लक्ष्य परिभाषित करता है - <code>clean</code>,{{sfn | Moodie | 2005 | loc = Chapter §5 Building a Project - Assembling the project - Manipulating the File Location | pp=121-125}} <code>clobber</code>, <code>compile</code> और <code>jar</code> , जिनमें से प्रत्येक का एक संबद्ध विवरण है। <code>jar</code> ई> लक्ष्य सूचीबद्ध करता है <code>compile</code> निर्भरता के रूप में लक्ष्य करें। यह एंट को बताता है कि इससे पहले कि वह शुरू कर सके <code>jar</code> लक्ष्य इसे पहले पूरा करना होगा <code>compile</code> लक्ष्य।


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 71: Line 68:
</project>
</project>
</syntaxhighlight>
</syntaxhighlight>
प्रत्येक लक्ष्य के भीतर वे क्रियाएं होती हैं जो चींटी को उस लक्ष्य को बनाने के लिए करनी चाहिए; इन्हें अंतर्निहित कार्यों का उपयोग करके निष्पादित किया जाता है। उदाहरण के लिए, का निर्माण करने के लिए <code> compile </code> लक्ष्य चींटी को पहले एक निर्देशिका बनानी होगी जिसे कहा जाता है <code>classes</code> (जो चींटी तभी करेगी जब वह पहले से मौजूद न हो) और फिर जावा कंपाइलर को इनवॉक करें। इसलिए, उपयोग किए जाने वाले कार्य हैं <code>mkdir</code> और <code>javac</code>. ये समान नाम की कमांड-लाइन उपयोगिताओं के समान कार्य करते हैं।
प्रत्येक लक्ष्य के भीतर वे क्रियाएं होती हैं जो एंट को उस लक्ष्य को बनाने के लिए करनी चाहिए; इन्हें अंतर्निहित कार्यों का उपयोग करके निष्पादित किया जाता है। उदाहरण के लिए, का निर्माण करने के लिए <code> compile </code> लक्ष्य एंट को पहले एक निर्देशिका बनानी होगी जिसे कहा जाता है <code>classes</code> (जो एंट तभी करेगी जब वह पहले से मौजूद न हो) और फिर जावा कंपाइलर को इनवॉक करें। इसलिए, उपयोग किए जाने वाले कार्य हैं <code>mkdir</code> और <code>javac</code>. ये समान नाम की कमांड-लाइन उपयोगिताओं के समान कार्य करते हैं।


इस उदाहरण में प्रयुक्त एक अन्य कार्य का नाम है <code>jar</code>:
इस उदाहरण में प्रयुक्त एक अन्य कार्य का नाम है <code>jar</code>:
Line 78: Line 75:
<jar destfile="hello.jar">
<jar destfile="hello.jar">
</syntaxhighlight>
</syntaxhighlight>
इस चींटी कार्य का नाम सामान्य जावा कमांड-लाइन उपयोगिता, JAR के समान है, लेकिन यह वास्तव में चींटी प्रोग्राम के अंतर्निहित JAR/ZIP फ़ाइल समर्थन के लिए एक कॉल है। यह विवरण अधिकांश अंतिम उपयोगकर्ताओं के लिए प्रासंगिक नहीं है, जिन्हें केवल वही JAR मिलता है जो वे चाहते थे, उनके द्वारा मांगी गई फ़ाइलों के साथ।
इस एंट कार्य का नाम सामान्य जावा कमांड-लाइन उपयोगिता, JAR के समान है, लेकिन यह वास्तव में एंट प्रोग्राम के अंतर्निहित JAR/ZIP फ़ाइल समर्थन के लिए एक कॉल है। यह विवरण अधिकांश अंतिम उपयोगकर्ताओं के लिए प्रासंगिक नहीं है, जिन्हें केवल वही JAR मिलता है जो वे चाहते थे, उनके द्वारा मांगी गई फ़ाइलों के साथ।


कई चींटी कार्य अपना काम बाहरी कार्यक्रमों, या तो देशी या जावा को सौंपते हैं। वे चींटी का ही उपयोग करते हैं {{tag|exec|open}} और {{tag|java|open}} कमांड लाइन स्थापित करने और बिल्ड फ़ाइल में जानकारी से लेकर प्रोग्राम के तर्कों और रिटर्न वैल्यू की व्याख्या करने तक मैपिंग के सभी विवरणों को संभालने का कार्य करता है। उपयोगकर्ता देख सकते हैं कि कौन से कार्य ऐसा करते हैं (उदा. {{tag|csv|open}}, {{tag|signjar|open}}, {{tag|chmod|open}}, {{tag|rpm|open}}), पथ पर अंतर्निहित प्रोग्राम के बिना, या पूर्ण जावा डेवलपमेंट किट (जेडीके) स्थापित किए बिना सिस्टम पर कार्य को निष्पादित करने का प्रयास करके।
कई एंट कार्य अपना काम बाहरी कार्यक्रमों, या तो देशी या जावा को सौंपते हैं। वे एंट का ही उपयोग करते हैं {{tag|exec|open}} और {{tag|java|open}} कमांड लाइन स्थापित करने और बिल्ड फ़ाइल में जानकारी से लेकर प्रोग्राम के तर्कों और रिटर्न वैल्यू की व्याख्या करने तक मैपिंग के सभी विवरणों को संभालने का कार्य करता है। उपयोगकर्ता देख सकते हैं कि कौन से कार्य ऐसा करते हैं (उदा. {{tag|csv|open}}, {{tag|signjar|open}}, {{tag|chmod|open}}, {{tag|rpm|open}}), पथ पर अंतर्निहित प्रोग्राम के बिना, या पूर्ण जावा डेवलपमेंट किट (जेडीके) स्थापित किए बिना सिस्टम पर कार्य को निष्पादित करने का प्रयास करके।


==पोर्टेबिलिटी==
==पोर्टेबिलिटी==
चींटी का उद्देश्य उन सभी प्रणालियों के साथ काम करना है जिनके लिए जावा रनटाइम उपलब्ध हैं। इसका उपयोग आमतौर पर [[ माइक्रोसॉफ़्ट विंडोज़ ]], [[लिनक्स]], मैकओएस और अन्य यूनिक्स ऑपरेटिंग सिस्टम के साथ किया जाता है, लेकिन इसका उपयोग ओएस/2, ओपनवीएमएस, [[ओरेकल सोलारिस]], एचपी-यूएक्स जैसे अन्य प्लेटफार्मों पर भी किया गया है।<ref>
एंट का उद्देश्य उन सभी प्रणालियों के साथ काम करना है जिनके लिए जावा रनटाइम उपलब्ध हैं। इसका उपयोग आमतौर पर [[ माइक्रोसॉफ़्ट विंडोज़ ]], [[लिनक्स]], मैकओएस और अन्य यूनिक्स ऑपरेटिंग सिस्टम के साथ किया जाता है, लेकिन इसका उपयोग ओएस/2, ओपनवीएमएस, [[ओरेकल सोलारिस]], एचपी-यूएक्स जैसे अन्य प्लेटफार्मों पर भी किया गया है।<ref>
Apache Ant Manual.
Apache Ant Manual.
Section
Section
[https://ant.apache.org/manual/install.html#sysrequirements "System Requirements"].
[https://ant.apache.org/manual/install.html#sysrequirements "System Requirements"].
</ref>
</ref>
चींटी को मेक की तुलना में अधिक पोर्टेबल बनाने के लिए डिज़ाइन किया गया था।{{sfn | Moodie | 2005 | loc = Chapter §1 Introducing Ant| pp=5-9}} मेक की तुलना में, चींटी कम प्लेटफ़ॉर्म-विशिष्ट [[ऑपरेटिंग सिस्टम शेल]] कमांड का उपयोग करती है। चींटी अंतर्निहित कार्यक्षमता प्रदान करती है जिसे सभी प्लेटफ़ॉर्म पर समान व्यवहार करने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, नमूने में <code>build.xml</code> उपरोक्त फ़ाइल, साफ़ लक्ष्य हटा देता है <code>classes</code> निर्देशिका और उसमें सब कुछ। मेकफ़ाइल में यह आमतौर पर कमांड के साथ किया जाएगा:
एंट को मेक की तुलना में अधिक पोर्टेबल बनाने के लिए डिज़ाइन किया गया था।{{sfn | Moodie | 2005 | loc = Chapter §1 Introducing Ant| pp=5-9}} मेक की तुलना में, एंट कम प्लेटफ़ॉर्म-विशिष्ट [[ऑपरेटिंग सिस्टम शेल]] कमांड का उपयोग करती है। एंट अंतर्निहित कार्यक्षमता प्रदान करती है जिसे सभी प्लेटफ़ॉर्म पर समान व्यवहार करने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, नमूने में <code>build.xml</code> उपरोक्त फ़ाइल, साफ़ लक्ष्य हटा देता है <code>classes</code> निर्देशिका और उसमें सब कुछ। मेकफ़ाइल में यह आमतौर पर कमांड के साथ किया जाएगा:
  आरएम-आरएफ कक्षाएं/
  आरएम-आरएफ कक्षाएं/
<code>[[rm (Unix)|rm]]</code> एक यूनिक्स-विशिष्ट कमांड कुछ अन्य परिवेशों में अनुपलब्ध है। उदाहरण के लिए, माइक्रोसॉफ्ट विंडोज़ इसका उपयोग करेगा:
<code>[[rm (Unix)|rm]]</code> एक यूनिक्स-विशिष्ट कमांड कुछ अन्य परिवेशों में अनुपलब्ध है। उदाहरण के लिए, माइक्रोसॉफ्ट विंडोज़ इसका उपयोग करेगा:
  आरएमडीआईआर/एस/क्यू कक्षाएं
  आरएमडीआईआर/एस/क्यू कक्षाएं
चींटी बिल्ड फ़ाइल में एक ही लक्ष्य एक अंतर्निहित कमांड का उपयोग करके पूरा किया जाएगा:
एंट बिल्ड फ़ाइल में एक ही लक्ष्य एक अंतर्निहित कमांड का उपयोग करके पूरा किया जाएगा:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
  <delete dir="classes"/>
  <delete dir="classes"/>
</syntaxhighlight>
</syntaxhighlight>
इसके अतिरिक्त, चींटी निर्देशिकाओं के लिए फॉरवर्ड स्लैश या बैकस्लैश और पथ विभाजकों के लिए अर्धविराम या कोलन के बीच अंतर नहीं करती है। यह प्रत्येक को उस प्लेटफ़ॉर्म के लिए उपयुक्त प्रतीक में परिवर्तित करता है जिस पर वह निष्पादित होता है।
इसके अतिरिक्त, एंट निर्देशिकाओं के लिए फॉरवर्ड स्लैश या बैकस्लैश और पथ विभाजकों के लिए अर्धविराम या कोलन के बीच अंतर नहीं करती है। यह प्रत्येक को उस प्लेटफ़ॉर्म के लिए उपयुक्त प्रतीक में परिवर्तित करता है जिस पर वह निष्पादित होता है।


==सीमाएँ==
==सीमाएँ==
Line 102: Line 99:


*एंट बिल्ड फ़ाइलें, जो XML में लिखी जाती हैं, जटिल और वर्बोज़ हो सकती हैं, क्योंकि वे पदानुक्रमित, आंशिक रूप से क्रमबद्ध और व्यापक रूप से क्रॉस-लिंक्ड होती हैं। यह जटिलता सीखने में बाधा बन सकती है। बड़ी या जटिल परियोजनाओं की बिल्ड फ़ाइलें असहनीय रूप से बड़ी हो सकती हैं। बिल्ड फ़ाइलों का अच्छा डिज़ाइन और मॉड्यूलरीकरण पठनीयता में सुधार कर सकता है लेकिन जरूरी नहीं कि आकार को कम कर दे।
*एंट बिल्ड फ़ाइलें, जो XML में लिखी जाती हैं, जटिल और वर्बोज़ हो सकती हैं, क्योंकि वे पदानुक्रमित, आंशिक रूप से क्रमबद्ध और व्यापक रूप से क्रॉस-लिंक्ड होती हैं। यह जटिलता सीखने में बाधा बन सकती है। बड़ी या जटिल परियोजनाओं की बिल्ड फ़ाइलें असहनीय रूप से बड़ी हो सकती हैं। बिल्ड फ़ाइलों का अच्छा डिज़ाइन और मॉड्यूलरीकरण पठनीयता में सुधार कर सकता है लेकिन जरूरी नहीं कि आकार को कम कर दे।
*बहुत से पुराने कार्य, जैसे {{tag|javac|open}}, {{tag|exec|open}} और {{tag|java|open}}—उन विकल्पों के लिए डिफ़ॉल्ट मानों का उपयोग करें जो कार्यों के नवीनतम संस्करणों के अनुरूप नहीं हैं। उन डिफ़ॉल्ट को बदलने से मौजूदा चींटी स्क्रिप्ट टूट जाएगी।
*बहुत से पुराने कार्य, जैसे {{tag|javac|open}}, {{tag|exec|open}} और {{tag|java|open}}—उन विकल्पों के लिए डिफ़ॉल्ट मानों का उपयोग करें जो कार्यों के नवीनतम संस्करणों के अनुरूप नहीं हैं। उन डिफ़ॉल्ट को बदलने से मौजूदा एंट स्क्रिप्ट टूट जाएगी।
*जब किसी स्ट्रिंग या टेक्स्ट तत्व में गुणों का विस्तार किया जाता है, तो अपरिभाषित गुणों को त्रुटि के रूप में नहीं उठाया जाता है, बल्कि एक अनविस्तारित संदर्भ के रूप में छोड़ दिया जाता है (उदाहरण के लिए) <code>${unassigned.property}</code>).
*जब किसी स्ट्रिंग या टेक्स्ट तत्व में गुणों का विस्तार किया जाता है, तो अपरिभाषित गुणों को त्रुटि के रूप में नहीं उठाया जाता है, बल्कि एक अनविस्तारित संदर्भ के रूप में छोड़ दिया जाता है (उदाहरण के लिए) <code>${unassigned.property}</code>).
*चींटी के पास सीमित दोष प्रबंधन नियम हैं।
*एंट के पास सीमित दोष प्रबंधन नियम हैं।
*[[आलसी मूल्यांकन]] समर्थित नहीं है. उदाहरण के लिए, एंटकॉन्ट्रिब के भीतर काम करते समय {{tag|for|open}} लूप, एक संपत्ति का उप-मूल्य के लिए पुनर्मूल्यांकन नहीं किया जा सकता है जो पुनरावृत्ति का हिस्सा हो सकता है। (कुछ तृतीय-पक्ष एक्सटेंशन वर्कअराउंड की सुविधा प्रदान करते हैं; एंटएक्सट्रैस प्रवाह-नियंत्रण कार्यसेट लूप के लिए कर्सर को फिर से परिभाषित करने की सुविधा प्रदान करते हैं।)
*[[आलसी मूल्यांकन]] समर्थित नहीं है. उदाहरण के लिए, एंटकॉन्ट्रिब के भीतर काम करते समय {{tag|for|open}} लूप, एक संपत्ति का उप-मूल्य के लिए पुनर्मूल्यांकन नहीं किया जा सकता है जो पुनरावृत्ति का हिस्सा हो सकता है। (कुछ तृतीय-पक्ष एक्सटेंशन वर्कअराउंड की सुविधा प्रदान करते हैं; एंटएक्सट्रैस प्रवाह-नियंत्रण कार्यसेट लूप के लिए कर्सर को फिर से परिभाषित करने की सुविधा प्रदान करते हैं।)
*मेकफ़ाइल्स में, एक फ़ाइल प्रकार को दूसरे से बनाने का कोई भी नियम मेकफ़ाइल के भीतर इनलाइन लिखा जा सकता है। उदाहरण के लिए, कोई किसी अन्य टूल को निष्पादित करने के लिए नियमों का उपयोग करके किसी दस्तावेज़ को किसी अन्य प्रारूप में बदल सकता है। चींटी में एक समान कार्य बनाना अधिक जटिल है: एक ही प्रकार की कार्यक्षमता को संभालने के लिए जावा में एक अलग कार्य लिखा जाना चाहिए और चींटी बिल्ड फ़ाइल के साथ शामिल किया जाना चाहिए। हालाँकि, यह पृथक्करण विभिन्न प्लेटफार्मों पर किसी कार्य को निष्पादित करने के तरीके के कुछ विवरणों को छिपाकर चींटी स्क्रिप्ट की पठनीयता को बढ़ा सकता है।
*मेकफ़ाइल्स में, एक फ़ाइल प्रकार को दूसरे से बनाने का कोई भी नियम मेकफ़ाइल के भीतर इनलाइन लिखा जा सकता है। उदाहरण के लिए, कोई किसी अन्य टूल को निष्पादित करने के लिए नियमों का उपयोग करके किसी दस्तावेज़ को किसी अन्य प्रारूप में बदल सकता है। एंट में एक समान कार्य बनाना अधिक जटिल है: एक ही प्रकार की कार्यक्षमता को संभालने के लिए जावा में एक अलग कार्य लिखा जाना चाहिए और एंट बिल्ड फ़ाइल के साथ शामिल किया जाना चाहिए। हालाँकि, यह पृथक्करण विभिन्न प्लेटफार्मों पर किसी कार्य को निष्पादित करने के तरीके के कुछ विवरणों को छिपाकर एंट स्क्रिप्ट की पठनीयता को बढ़ा सकता है।


तृतीय-पक्ष एंट एक्सटेंशन मौजूद हैं (जिन्हें एंटलिब्स कहा जाता है) जो अधिकांश अनुपलब्ध कार्यक्षमता प्रदान करते हैं। इसके अलावा, एक्लिप्स (सॉफ़्टवेयर) एकीकृत विकास वातावरण (आईडीई) चींटी स्क्रिप्ट का निर्माण और निष्पादन कर सकता है, जबकि [[ NetBeans ]] आईडीई अपने आंतरिक निर्माण प्रणाली के लिए चींटी का उपयोग करता है। चूंकि ये दोनों आईडीई बहुत लोकप्रिय विकास मंच हैं, वे चींटी के उपयोग को महत्वपूर्ण रूप से सरल बना सकते हैं। (बोनस के रूप में, नेटबीन्स द्वारा उत्पन्न चींटी स्क्रिप्ट का उपयोग उस आईडीई के बाहर स्टैंडअलोन स्क्रिप्ट के रूप में किया जा सकता है।)
तृतीय-पक्ष एंट एक्सटेंशन मौजूद हैं (जिन्हें एंटलिब्स कहा जाता है) जो अधिकांश अनुपलब्ध कार्यक्षमता प्रदान करते हैं। इसके अलावा, एक्लिप्स (सॉफ़्टवेयर) एकीकृत विकास वातावरण (आईडीई) एंट स्क्रिप्ट का निर्माण और निष्पादन कर सकता है, जबकि [[ NetBeans ]] आईडीई अपने आंतरिक निर्माण प्रणाली के लिए एंट का उपयोग करता है। चूंकि ये दोनों आईडीई बहुत लोकप्रिय विकास मंच हैं, वे एंट के उपयोग को महत्वपूर्ण रूप से सरल बना सकते हैं। (बोनस के रूप में, नेटबीन्स द्वारा उत्पन्न एंट स्क्रिप्ट का उपयोग उस आईडीई के बाहर स्टैंडअलोन स्क्रिप्ट के रूप में किया जा सकता है।)


==यह भी देखें==
==यह भी देखें==
Line 116: Line 113:
*[[अपाचे आइवी]], एक निर्भरता प्रबंधक जो एंट के उपप्रोजेक्ट एंट के साथ मजबूती से एकीकृत होता है
*[[अपाचे आइवी]], एक निर्भरता प्रबंधक जो एंट के उपप्रोजेक्ट एंट के साथ मजबूती से एकीकृत होता है
*अपाचे मावेन, मुख्य रूप से जावा के लिए एक परियोजना प्रबंधन और निर्माण स्वचालन उपकरण
*अपाचे मावेन, मुख्य रूप से जावा के लिए एक परियोजना प्रबंधन और निर्माण स्वचालन उपकरण
*नैंट, चींटी जैसा उपकरण जो जावा के बजाय .NET फ्रेमवर्क वातावरण पर लक्षित है
*नैंट, एंट जैसा उपकरण जो जावा के बजाय .NET फ्रेमवर्क वातावरण पर लक्षित है
*ग्रैडल, ग्रूवी के साथ निर्मित एक जेवीएम बिल्ड टूल
*ग्रैडल, ग्रूवी के साथ निर्मित एक जेवीएम बिल्ड टूल



Revision as of 09:21, 18 July 2023

Apache Ant
Original author(s)James Duncan Davidson
Developer(s)Apache Software Foundation
Initial release19 July 2000; 24 years ago (2000-07-19)
Stable release
1.10.13 / January 10, 2023; 2 years ago (2023-01-10)[1]
RepositoryAnt Repository
Written inJava
PlatformJava SE
TypeBuild tool
LicenseApache License 2.0

अपाचे एंट सॉफ्टवेयर निर्माण प्रक्रियाओं को स्वचालित करने के लिए एक सॉफ्टवेयर उपकरण है[2] जो यूनिक्स के मेक बिल्ड टूल के प्रतिस्थापन के रूप में 2000 की शुरुआत में अपाचे टॉमकैट परियोजना से उत्पन्न हुआ था।[3] यह मेक के समान है, लेकिन इसे जावा भाषा का उपयोग करके प्रयुक्त किया जाता है और इसके लिए जावा प्लेटफ़ॉर्म की आवश्यकता होती है। मेक के विपरीत, जो मेकफ़ाइल प्रारूप का उपयोग करता है, एंट कोड निर्माण प्रक्रिया और उसकी निर्भरता का वर्णन करने के लिए XML का उपयोग करता है।[4]

अपाचे सॉफ्टवेयर फाउंडेशन द्वारा अपाचे लाइसेंस के तहत जारी किया गया, एंट एक ओपन-सोर्स प्रोजेक्ट है।

इतिहास

एंट ("एक और नीट टूल")[5] की कल्पना जेम्स डंकन डेविडसन ने सन माइक्रोसिस्टम्स के संदर्भ जेएसपी और सर्वलेट इंजन, बाद में अपाचे टॉमकैट को ओपन-सोर्स के रूप में रिलीज के लिए तैयार करते समय की थी। इसे सोलारिस प्लेटफॉर्म पर बनाने के लिए मेक के एक मालिकाना संस्करण का उपयोग किया गया था, लेकिन ओपन-सोर्स दुनिया में, यह नियंत्रित करने का कोई तरीका नहीं था कि टॉमकैट को बनाने के लिए किस प्लेटफॉर्म का उपयोग किया गया था; इसलिए एंट को XML "बिल्ड फ़ाइल" में निर्देशों से टॉमकैट बनाने के लिए एक सरल प्लेटफ़ॉर्म-स्वतंत्र टूल के रूप में बनाया गया था। एंट (संस्करण 1.1) को आधिकारिक तौर पर 19 जुलाई, 2000 को एक स्टैंडअलोन उत्पाद के रूप में जारी किया गया था।

एंट संस्करण 2 के लिए कई प्रस्ताव दिए गए हैं, जैसे जेम्स डंकन डेविडसन द्वारा एंटईटर, पीटर डोनाल्ड द्वारा मायर्मिडॉन [6] और कॉनर मैकनील द्वारा म्यूटेंट, जिनमें से किसी को भी डेवलपर समुदाय के साथ बड़ी स्वीकृति नहीं मिल पाई थी।[7]

एक समय (2002) में, एंट अधिकांश जावा विकास परियोजनाओं द्वारा उपयोग किया जाने वाला निर्माण उपकरण था।[8] उदाहरण के लिए, अधिकांश ओपन-सोर्स जावा डेवलपर्स ने अपने वितरण के साथ build.xmlफाइलें शामिल कीं। क्योंकि एंट ने बिल्ड प्रक्रिया के साथ जुनीट परीक्षणों को एकीकृत करना आसान बना दिया था, एंट ने डेवलपर्स को परीक्षण-संचालित विकास और एक्सट्रीम प्रोग्रामिंग को अपनाने की अनुमति दी थी।

2004 में अपाचे ने इसी उद्देश्य से मावेन नामक एक नया टूल बनाया।

ग्रैडल, जो इसी तरह का सॉफ्टवेयर है, 2008 में बनाया गया था, इसके विपरीत XML के स्थान पर ग्रूवी (और कुछ अन्य भाषाओं) कोड का उपयोग करता है।

एक्सटेंशन

डब्ल्यूओप्रोजेक्ट-एंट[9], एंट के लिए लिखे गए कार्य एक्सटेंशन के कई उदाहरणों में से एक है। ये एक्सटेंशन उनकी .jarफ़ाइलों को एंट की lib निर्देशिका में कॉपी करके इंस्टॉल किए जाते हैं। एक बार यह हो जाने के बाद, इन कार्य एक्सटेंशनों को सीधे विशिष्ट build.xml फ़ाइल में प्रयुक्त किया जा सकता है। डब्ल्यूओप्रोजेक्ट एक्सटेंशन एप्पल के एक्सकोड सुइट का उपयोग करने के बजाय, वेबऑब्जेक्ट्स डेवलपर्स को अपने फ्रेमवर्क और ऐप्स के निर्माण में एंट का उपयोग करने की अनुमति देते हैं।

Antcontrib[10] सशर्त विवरण और संपत्तियों पर संचालन के साथ-साथ अन्य उपयोगी कार्यों जैसे कार्यों का एक संग्रह प्रदान करता है।[11][12]

Ant-contrib.unkrig.de[13] नेटवर्किंग, स्विंग (जावा) यूजर इंटरफेस, JSON प्रोसेसिंग और अन्य के लिए कार्यों और प्रकारों को प्रयुक्त करता है।

विवशतापूर्वक, .NET फ्रेमवर्क, ईजेबी और फ़ाइल सिस्टम परिवर्तन के लिए अन्य कार्य एक्सटेंशन उपस्थित हैं।[14]

उदाहरण

नीचे एक नमूना सूचीबद्ध है build.xml एक सरल जावा हैलो, वर्ल्ड एप्लिकेशन के लिए फ़ाइल। यह चार लक्ष्य परिभाषित करता है - clean,[15] clobber, compile और jar , जिनमें से प्रत्येक का एक संबद्ध विवरण है। jar ई> लक्ष्य सूचीबद्ध करता है compile निर्भरता के रूप में लक्ष्य करें। यह एंट को बताता है कि इससे पहले कि वह शुरू कर सके jar लक्ष्य इसे पहले पूरा करना होगा compile लक्ष्य।

<?xml version="1.0"?>
<project name="Hello" default="compile">
    <target name="clean" description="remove intermediate files">
        <delete dir="classes"/>
    </target>
    <target name="clobber" depends="clean" description="remove all artifact files">
        <delete file="hello.jar"/>
    </target>
    <target name="compile" description="compile the Java source code to class files">
        <mkdir dir="classes"/>
        <javac srcdir="." destdir="classes"/>
    </target>
    <target name="jar" depends="compile" description="create a Jar file for the application">
        <jar destfile="hello.jar">
            <fileset dir="classes" includes="**/*.class"/>
            <manifest>
                <attribute name="Main-Class" value="HelloProgram"/>
            </manifest>
        </jar>
    </target>
</project>

प्रत्येक लक्ष्य के भीतर वे क्रियाएं होती हैं जो एंट को उस लक्ष्य को बनाने के लिए करनी चाहिए; इन्हें अंतर्निहित कार्यों का उपयोग करके निष्पादित किया जाता है। उदाहरण के लिए, का निर्माण करने के लिए compile लक्ष्य एंट को पहले एक निर्देशिका बनानी होगी जिसे कहा जाता है classes (जो एंट तभी करेगी जब वह पहले से मौजूद न हो) और फिर जावा कंपाइलर को इनवॉक करें। इसलिए, उपयोग किए जाने वाले कार्य हैं mkdir और javac. ये समान नाम की कमांड-लाइन उपयोगिताओं के समान कार्य करते हैं।

इस उदाहरण में प्रयुक्त एक अन्य कार्य का नाम है jar:

<jar destfile="hello.jar">

इस एंट कार्य का नाम सामान्य जावा कमांड-लाइन उपयोगिता, JAR के समान है, लेकिन यह वास्तव में एंट प्रोग्राम के अंतर्निहित JAR/ZIP फ़ाइल समर्थन के लिए एक कॉल है। यह विवरण अधिकांश अंतिम उपयोगकर्ताओं के लिए प्रासंगिक नहीं है, जिन्हें केवल वही JAR मिलता है जो वे चाहते थे, उनके द्वारा मांगी गई फ़ाइलों के साथ।

कई एंट कार्य अपना काम बाहरी कार्यक्रमों, या तो देशी या जावा को सौंपते हैं। वे एंट का ही उपयोग करते हैं ‎<exec> और ‎<java> कमांड लाइन स्थापित करने और बिल्ड फ़ाइल में जानकारी से लेकर प्रोग्राम के तर्कों और रिटर्न वैल्यू की व्याख्या करने तक मैपिंग के सभी विवरणों को संभालने का कार्य करता है। उपयोगकर्ता देख सकते हैं कि कौन से कार्य ऐसा करते हैं (उदा. ‎<csv>, ‎<signjar>, ‎<chmod>, ‎<rpm>), पथ पर अंतर्निहित प्रोग्राम के बिना, या पूर्ण जावा डेवलपमेंट किट (जेडीके) स्थापित किए बिना सिस्टम पर कार्य को निष्पादित करने का प्रयास करके।

पोर्टेबिलिटी

एंट का उद्देश्य उन सभी प्रणालियों के साथ काम करना है जिनके लिए जावा रनटाइम उपलब्ध हैं। इसका उपयोग आमतौर पर माइक्रोसॉफ़्ट विंडोज़ , लिनक्स, मैकओएस और अन्य यूनिक्स ऑपरेटिंग सिस्टम के साथ किया जाता है, लेकिन इसका उपयोग ओएस/2, ओपनवीएमएस, ओरेकल सोलारिस, एचपी-यूएक्स जैसे अन्य प्लेटफार्मों पर भी किया गया है।[16] एंट को मेक की तुलना में अधिक पोर्टेबल बनाने के लिए डिज़ाइन किया गया था।[4] मेक की तुलना में, एंट कम प्लेटफ़ॉर्म-विशिष्ट ऑपरेटिंग सिस्टम शेल कमांड का उपयोग करती है। एंट अंतर्निहित कार्यक्षमता प्रदान करती है जिसे सभी प्लेटफ़ॉर्म पर समान व्यवहार करने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, नमूने में build.xml उपरोक्त फ़ाइल, साफ़ लक्ष्य हटा देता है classes निर्देशिका और उसमें सब कुछ। मेकफ़ाइल में यह आमतौर पर कमांड के साथ किया जाएगा:

आरएम-आरएफ कक्षाएं/

rm एक यूनिक्स-विशिष्ट कमांड कुछ अन्य परिवेशों में अनुपलब्ध है। उदाहरण के लिए, माइक्रोसॉफ्ट विंडोज़ इसका उपयोग करेगा:

आरएमडीआईआर/एस/क्यू कक्षाएं

एंट बिल्ड फ़ाइल में एक ही लक्ष्य एक अंतर्निहित कमांड का उपयोग करके पूरा किया जाएगा:

 <delete dir="classes"/>

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

सीमाएँ

  • एंट बिल्ड फ़ाइलें, जो XML में लिखी जाती हैं, जटिल और वर्बोज़ हो सकती हैं, क्योंकि वे पदानुक्रमित, आंशिक रूप से क्रमबद्ध और व्यापक रूप से क्रॉस-लिंक्ड होती हैं। यह जटिलता सीखने में बाधा बन सकती है। बड़ी या जटिल परियोजनाओं की बिल्ड फ़ाइलें असहनीय रूप से बड़ी हो सकती हैं। बिल्ड फ़ाइलों का अच्छा डिज़ाइन और मॉड्यूलरीकरण पठनीयता में सुधार कर सकता है लेकिन जरूरी नहीं कि आकार को कम कर दे।
  • बहुत से पुराने कार्य, जैसे ‎<javac>, ‎<exec> और ‎<java>—उन विकल्पों के लिए डिफ़ॉल्ट मानों का उपयोग करें जो कार्यों के नवीनतम संस्करणों के अनुरूप नहीं हैं। उन डिफ़ॉल्ट को बदलने से मौजूदा एंट स्क्रिप्ट टूट जाएगी।
  • जब किसी स्ट्रिंग या टेक्स्ट तत्व में गुणों का विस्तार किया जाता है, तो अपरिभाषित गुणों को त्रुटि के रूप में नहीं उठाया जाता है, बल्कि एक अनविस्तारित संदर्भ के रूप में छोड़ दिया जाता है (उदाहरण के लिए) ${unassigned.property}).
  • एंट के पास सीमित दोष प्रबंधन नियम हैं।
  • आलसी मूल्यांकन समर्थित नहीं है. उदाहरण के लिए, एंटकॉन्ट्रिब के भीतर काम करते समय ‎<for> लूप, एक संपत्ति का उप-मूल्य के लिए पुनर्मूल्यांकन नहीं किया जा सकता है जो पुनरावृत्ति का हिस्सा हो सकता है। (कुछ तृतीय-पक्ष एक्सटेंशन वर्कअराउंड की सुविधा प्रदान करते हैं; एंटएक्सट्रैस प्रवाह-नियंत्रण कार्यसेट लूप के लिए कर्सर को फिर से परिभाषित करने की सुविधा प्रदान करते हैं।)
  • मेकफ़ाइल्स में, एक फ़ाइल प्रकार को दूसरे से बनाने का कोई भी नियम मेकफ़ाइल के भीतर इनलाइन लिखा जा सकता है। उदाहरण के लिए, कोई किसी अन्य टूल को निष्पादित करने के लिए नियमों का उपयोग करके किसी दस्तावेज़ को किसी अन्य प्रारूप में बदल सकता है। एंट में एक समान कार्य बनाना अधिक जटिल है: एक ही प्रकार की कार्यक्षमता को संभालने के लिए जावा में एक अलग कार्य लिखा जाना चाहिए और एंट बिल्ड फ़ाइल के साथ शामिल किया जाना चाहिए। हालाँकि, यह पृथक्करण विभिन्न प्लेटफार्मों पर किसी कार्य को निष्पादित करने के तरीके के कुछ विवरणों को छिपाकर एंट स्क्रिप्ट की पठनीयता को बढ़ा सकता है।

तृतीय-पक्ष एंट एक्सटेंशन मौजूद हैं (जिन्हें एंटलिब्स कहा जाता है) जो अधिकांश अनुपलब्ध कार्यक्षमता प्रदान करते हैं। इसके अलावा, एक्लिप्स (सॉफ़्टवेयर) एकीकृत विकास वातावरण (आईडीई) एंट स्क्रिप्ट का निर्माण और निष्पादन कर सकता है, जबकि NetBeans आईडीई अपने आंतरिक निर्माण प्रणाली के लिए एंट का उपयोग करता है। चूंकि ये दोनों आईडीई बहुत लोकप्रिय विकास मंच हैं, वे एंट के उपयोग को महत्वपूर्ण रूप से सरल बना सकते हैं। (बोनस के रूप में, नेटबीन्स द्वारा उत्पन्न एंट स्क्रिप्ट का उपयोग उस आईडीई के बाहर स्टैंडअलोन स्क्रिप्ट के रूप में किया जा सकता है।)

यह भी देखें

  • स्वचालन बनाएँ
  • अपाचे जेली, XML को निष्पादन योग्य कोड में बदलने के लिए एक उपकरण
  • अपाचे आइवी, एक निर्भरता प्रबंधक जो एंट के उपप्रोजेक्ट एंट के साथ मजबूती से एकीकृत होता है
  • अपाचे मावेन, मुख्य रूप से जावा के लिए एक परियोजना प्रबंधन और निर्माण स्वचालन उपकरण
  • नैंट, एंट जैसा उपकरण जो जावा के बजाय .NET फ्रेमवर्क वातावरण पर लक्षित है
  • ग्रैडल, ग्रूवी के साथ निर्मित एक जेवीएम बिल्ड टूल

संदर्भ

  1. "Apache Ant Project News". Retrieved 8 June 2023.
  2. "अपाचे चींटी - स्वागत है". ant.apache.org. Retrieved 2022-01-25.
  3. "अपाचे चींटी - अक्सर पूछे जाने वाले प्रश्न". ant.apache.org. Retrieved 2022-01-25.
  4. Jump up to: 4.0 4.1 Moodie 2005, pp. 5–9, Chapter §1 Introducing Ant.
  5. "Why do you call it Ant? – Apache Ant FAQ".
  6. Peter Donald. "Myrmidon: The Ant2.0 Proposal".
  7. MacNeill, Conor. "चींटी विकास का प्रारंभिक इतिहास".
  8. Wiley (2002). एक्सट्रीम प्रोग्रामिंग के लिए जावा टूल्स. p. 76.
  9. "WOProject-Ant – WOProject / WOLips – Confluence". Archived from the original on 2009-01-08.
  10. "Ant-Contrib".
  11. "Ant-Contrib Tasks".
  12. Moodie 2005, pp. 266–267, Chapter §10 Writing Custom Tasks - Using Third-Party Custom Tasks.
  13. "ant-contrib.unkrig.de".
  14. "Overview of Ant Tasks".
  15. Moodie 2005, pp. 121–125, Chapter §5 Building a Project - Assembling the project - Manipulating the File Location.
  16. Apache Ant Manual. Section "System Requirements".


अग्रिम पठन


बाहरी संबंध

  • No URL found. Please specify a URL here or add one to Wikidata.