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

From Vigyanwiki
No edit summary
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Java software tool}}
{{short description|Java software tool}}
{{Infobox software
{{Infobox software
| name = Apache Ant
| name = अपाचे एंट
| logo = Apache-Ant-logo.svg
| logo = Apache-Ant-logo.svg
| screenshot =  
| screenshot =  
| caption =  
| caption =  
| author = [[James Duncan Davidson]]
| author = [[जेम्स डंकन डेविडसन]]
| developer = [[Apache Software Foundation]]
| developer = [[अपाचे सॉफ्टवेयर फाउंडेशन]]
| released = {{Start date and age|df=yes|2000|07|19}}
| released = {{प्रारंभ तिथि और आयु|df=yes|2000|07|19}}
| latest release version = 1.10.13
| latest release version = 1.10.13
| latest release date = {{Start date and age|2023|01|10}}<ref>{{cite web|url=https://ant.apache.org/antnews.html|access-date=8 June 2023|title=Apache Ant Project News}}</ref>
| latest release date = {{Start date and age|2023|01|10}}<ref>{{cite web|url=https://ant.apache.org/antnews.html|access-date=8 June 2023|title=Apache Ant Project News}}</ref>
| latest preview version =  
| latest preview version =  
| latest preview date =  
| latest preview date =  
| platform = [[Java SE]]
| platform = [[जावा एसई]]
| repo = {{URL|https://git-wip-us.apache.org/repos/asf?p{{=}}ant.git|Ant Repository}}
| repo = {{URL|https://git-wip-us.apache.org/repos/asf?p{{=}}ant.git|Ant Repository}}
| programming language = [[Java (programming language)|Java]]
| programming language = [[जावा (प्रोग्रामिंग भाषा)|जावा]]
| genre = [[Build tool]]
| genre = [[बिल्ड टूल]]
| license = [[Apache License 2.0]]
| 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> की कल्पना [[जेम्स डंकन डेविडसन]] ने [[सन माइक्रोसिस्टम्स]] के संदर्भ जेएसपी और [[सर्वलेट]] इंजन, बाद में अपाचे टॉमकैट को ओपन-सोर्स के रूप में रिलीज के लिए तैयार करते समय की थी। इसे [[सोलारिस (ऑपरेटिंग सिस्टम)|सोलारिस]] प्लेटफॉर्म पर बनाने के लिए मेक के मालिकाना संस्करण का उपयोग किया गया था, लेकिन ओपन-सोर्स दुनिया में, यह नियंत्रित करने का कोई तरीका नहीं था कि टॉमकैट को बनाने के लिए किस प्लेटफॉर्म का उपयोग किया गया था; इसलिए एंट को एक्सएमएल "बिल्ड फ़ाइल" में निर्देशों से टॉमकैट बनाने के लिए सरल प्लेटफ़ॉर्म-स्वतंत्र टूल के रूप में बनाया गया था। एंट (संस्करण 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 में अपाचे ने इसी उद्देश्य से मावेन नामक एक नया टूल बनाया।


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


==एक्सटेंशन==
==एक्सटेंशन==
Line 43: Line 43:
विवशतापूर्वक, .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 68: 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>नाम दिया गया है:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<jar destfile="hello.jar">
<jar destfile="hello.jar">
</syntaxhighlight>
</syntaxhighlight>
इस एंट कार्य का नाम सामान्य जावा कमांड-लाइन उपयोगिता, 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> निर्देशिका और उसमें उपस्थित सभी चीज़ों को हटा देता है। मेकफाइल में यह सामान्यतः कमांड के साथ किया जाएगा:<syntaxhighlight lang="java">
आरएम-आरएफ कक्षाएं/
rm -rf classes/
<code>[[rm (Unix)|rm]]</code> एक यूनिक्स-विशिष्ट कमांड कुछ अन्य परिवेशों में अनुपलब्ध है। उदाहरण के लिए, माइक्रोसॉफ्ट विंडोज़ इसका उपयोग करेगा:
</syntaxhighlight><code>[[rm (Unix)|rm]]</code> एक यूनिक्स-विशिष्ट कमांड कुछ अन्य परिवेशों में अनुपलब्ध है। उदाहरण के लिए, माइक्रोसॉफ्ट विंडोज़ इसका उपयोग करेगा:<syntaxhighlight lang="java">
आरएमडीआईआर/एस/क्यू कक्षाएं
rmdir /S /Q classes
एंट बिल्ड फ़ाइल में एक ही लक्ष्य एक अंतर्निहित कमांड का उपयोग करके पूरा किया जाएगा:
</syntaxhighlight>एंट बिल्ड फ़ाइल में एक ही टार्गेट एक अंतर्निहित कमांड का उपयोग करके पूरा किया जाएगा:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
  <delete dir="classes"/>
  <delete dir="classes"/>
</syntaxhighlight>
</syntaxhighlight>
इसके अतिरिक्त, एंट निर्देशिकाओं के लिए फॉरवर्ड स्लैश या बैकस्लैश और पथ विभाजकों के लिए अर्धविराम या कोलन के बीच अंतर नहीं करती है। यह प्रत्येक को उस प्लेटफ़ॉर्म के लिए उपयुक्त प्रतीक में परिवर्तित करता है जिस पर वह निष्पादित होता है।
इसके अलावा, एंट निर्देशिकाओं के लिए फॉरवर्ड स्लैश या बैकस्लैश और पथ विभाजकों के लिए अर्धविराम या कोलन के बीच अंतर नहीं करती है। यह प्रत्येक को उस प्लेटफ़ॉर्म के लिए उपयुक्त प्रतीक में परिवर्तित करता है जिस पर वह कार्यान्वित होता है।


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


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


==यह भी देखें==
==यह भी देखें==
*स्वचालन बनाएँ
*[[बिल्ड ऑटोमेशन सॉफ़्टवेयर की सूची|बिल्ड ऑटोमेशन]]
**[[बिल्ड ऑटोमेशन सॉफ़्टवेयर की सूची]]
**[[बिल्ड ऑटोमेशन सॉफ़्टवेयर की सूची]]
*[[अपाचे जेली]], XML को निष्पादन योग्य कोड में बदलने के लिए एक उपकरण
*[[अपाचे जेली]], एक्सएमएल को निष्पादन योग्य कोड में बदलने के लिए एक उपकरण
*[[अपाचे आइवी]], एक निर्भरता प्रबंधक जो एंट के उपप्रोजेक्ट एंट के साथ मजबूती से एकीकृत होता है
*[[अपाचे आइवी]], एक निर्भरता प्रबंधक जो एंट के उपप्रोजेक्ट एंट के साथ मजबूती से एकीकृत होता है
*अपाचे मावेन, मुख्य रूप से जावा के लिए एक परियोजना प्रबंधन और निर्माण स्वचालन उपकरण
*अपाचे मावेन, मुख्य रूप से जावा के लिए एक परियोजना प्रबंधन और निर्माण स्वचालन उपकरण
Line 118: Line 116:
==संदर्भ==
==संदर्भ==
{{Reflist}}
{{Reflist}}
==अग्रिम पठन==
==अग्रिम पठन==
{{refbegin}}
{{refbegin}}
Line 209: Line 205:
==बाहरी संबंध==
==बाहरी संबंध==
{{Wikibooks|Apache Ant}}
{{Wikibooks|Apache Ant}}
*{{Official website}}
*[https://ant.apache.org/ Official Website]


{{Apache Software Foundation}}
{{Apache Software Foundation}}


{{Authority control}}
{{Authority control}}
[[Category: अपाचे सॉफ्टवेयर फाउंडेशन प्रोजेक्ट्स|एंट]] [[Category: स्वचालन बनाएँ]] [[Category: संकलन उपकरण]] [[Category: क्रॉस-प्लेटफ़ॉर्म मुफ़्त सॉफ़्टवेयर]] [[Category: जावा में प्रोग्राम किया गया मुफ़्त सॉफ़्टवेयर (प्रोग्रामिंग भाषा)]] [[Category: जावा (प्रोग्रामिंग भाषा) लाइब्रेरी]] [[Category: जावा विकास उपकरण]] [[Category: अपाचे लाइसेंस का उपयोग करने वाला सॉफ़्टवेयर]] [[Category: एक्सएमएल सॉफ्टवेयर]]


[[Category: Machine Translated Page]]
[[Category:Collapse templates]]
[[Category:Created On 11/07/2023]]
[[Category:Created On 11/07/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Official website missing URL]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]

Latest revision as of 15:33, 28 July 2023

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

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

इतिहास

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

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

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

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

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

एक्सटेंशन

डब्ल्यूओप्रोजेक्ट-एंट[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">

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

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

पोर्टेबिलिटी (सुवाह्यता)

एंट का उद्देश्य उन सभी प्रणालियों के साथ काम करना है जिनके लिए जावा रनटाइम उपलब्ध हैं। इसका उपयोग सामान्यतः विंडोज़, लिनक्स, मैकओएस और अन्य यूनिक्स ऑपरेटिंग सिस्टम के साथ किया जाता है, लेकिन इसका उपयोग ओएस/2, ओपनवीएमएस, सोलारिस, एचपी-यूएक्स जैसे अन्य प्लेटफार्मों पर भी किया जाता है।[16]

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

rm -rf classes/

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

rmdir /S /Q classes

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

 <delete dir="classes"/>

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

सीमाएँ

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

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

यह भी देखें

  • बिल्ड ऑटोमेशन
  • अपाचे जेली, एक्सएमएल को निष्पादन योग्य कोड में बदलने के लिए एक उपकरण
  • अपाचे आइवी, एक निर्भरता प्रबंधक जो एंट के उपप्रोजेक्ट एंट के साथ मजबूती से एकीकृत होता है
  • अपाचे मावेन, मुख्य रूप से जावा के लिए एक परियोजना प्रबंधन और निर्माण स्वचालन उपकरण
  • नैंट, एंट जैसा उपकरण जो जावा के बजाय .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".

अग्रिम पठन


बाहरी संबंध