अपाचे चींटी क्या है?
एक पूर्ण सॉफ्टवेयर उत्पाद बनाते समय, किसी को अलग-अलग थर्ड पार्टी एपीआई, उनकी क्लासपाथ, पिछली निष्पादन योग्य बाइनरी फाइलों की सफाई, हमारे सोर्स कोड का संकलन, सोर्स कोड का निष्पादन, रिपोर्ट बनाने और तैनाती कोड आधार आदि की देखभाल करने की आवश्यकता होती है, यदि ये कार्य किए जाते हैं। एक-एक करके मैन्युअल रूप से, इसमें भारी समय लगेगा, और इस प्रक्रिया में त्रुटियों का खतरा होगा।
यहाँ चींटी जैसे बिल्ड टूल का महत्व है। यह चींटी के कॉन्फ़िगरेशन फ़ाइल (आमतौर पर build.xml) में उल्लिखित अनुक्रमिक क्रम में सभी प्रक्रिया को स्टोर, निष्पादित और स्वचालित करता है।
एंट बिल्ड का लाभ
- चींटी आवेदन जीवन चक्र यानी स्वच्छ, संकलन, सेट निर्भरता, निष्पादन, रिपोर्ट आदि बनाती है।
- तृतीय पक्ष एपीआई निर्भरता को एंट द्वारा सेट किया जा सकता है अर्थात अन्य जार फ़ाइल का क्लास पथ चींटी बिल्ड फ़ाइल द्वारा निर्धारित किया जाता है।
- एंड टू एंड डिलीवरी और परिनियोजन के लिए एक पूर्ण एप्लिकेशन बनाया गया है।
- यह एक सरल बिल्ड टूल है जहां XML फ़ाइल का उपयोग करके सभी कॉन्फ़िगरेशन किए जा सकते हैं और जिसे कमांड लाइन से निष्पादित किया जा सकता है।
- यह आपके कोड को साफ करता है क्योंकि कॉन्फ़िगरेशन वास्तविक एप्लिकेशन लॉजिक से अलग है।
चींटी को कैसे स्थापित करें
विंडोज में चींटी को स्थापित करने के चरण निम्नानुसार हैं
चरण 1) http://ant.apache.org/bindownload.cgi पर जाएँ। Apache-ant-1.9.4-bin.zip से .zip फ़ाइल डाउनलोड करें
चरण 2) फ़ोल्डर को अनज़िप करें और अनज़िप्ड फ़ोल्डर की जड़ में पथ को कॉपी करें
स्टेप 3) स्टार्ट -> कंप्यूटर -> राइट क्लिक पर जाएं और 'प्रॉपर्टीज' चुनें और फिर एडवांस्ड सिस्टम सेटिंग्स पर क्लिक करें
चरण 4) एक नई विंडो खुलती है। 'पर्यावरण चर' पर क्लिक करें
… ’बटन।चरण 5) 'नया पर क्लिक करें
… बटन और 'ANT_HOME ’के रूप में चर नाम सेट करें और unzipped फ़ोल्डर के रूट पथ के रूप में चर मूल्य और ठीक पर क्लिक करें।चरण 6) अब सूची से 'पथ' चर चुनें और 'संपादित करें' पर क्लिक करें और संलग्न करें; % ANT_HOME% \ बिन।
सिस्टम को एक बार रीस्टार्ट करें और आप चींटी बिल्ड टूल का उपयोग करने के लिए तैयार हैं।
चरण 7) कमांड लाइन का उपयोग करके अपने चींटी के संस्करण की जांच करने के लिए:
चीर-फाड़ करना
समझना बिल्ड.xml
बिल्ड.xml, एंट बिल्ड टूल का सबसे महत्वपूर्ण घटक है। एक जावा प्रोजेक्ट के लिए, एक्सएमएल प्रारूप में इस फाइल में सभी सफाई, सेटअप, संकलन और तैनाती से संबंधित कार्य का उल्लेख किया गया है। जब हम कमांड लाइन या किसी आईडीई प्लगइन का उपयोग करके इस एक्सएमएल फाइल को निष्पादित करते हैं, तो इस फाइल में लिखे गए सभी निर्देश क्रमबद्ध तरीके से निष्पादित हो जाएंगे।
आइए एक नमूना build.XML के भीतर कोड को समझते हैं
- प्रोजेक्ट टैग का उपयोग प्रोजेक्ट नाम और आधार की विशेषता का उल्लेख करने के लिए किया जाता है। आधार एक आवेदन की जड़ निर्देशिका है
<परियोजना का नाम = "YTMonetize" आधारित = "।">
- प्रॉपर्टी टैग का उपयोग बिल्ड.XML फ़ाइल में चर के रूप में आगे के चरणों में किया जाता है
<संपत्ति का नाम = "build.dir" मान = "$ {आधारित} / निर्माण" /><संपत्ति का नाम = "external.jars" मान = "। \ संसाधन" /><संपत्ति का नाम = "ytoperation.dir" मान = "$ {external.jars} / YTOperation" /><संपत्ति का नाम = "src.dir" मान = "$ {आधारित} / src" />
- लक्ष्य टैग का उपयोग उन चरणों के रूप में किया जाता है जो अनुक्रमिक क्रम में निष्पादित होंगे। नाम विशेषता लक्ष्य का नाम है। आप एक ही build.xml में कई लक्ष्य रख सकते हैं
<लक्ष्य नाम = "setClassPath">
- पथ टैग का उपयोग सभी फ़ाइलों को तार्किक रूप से बंडल करने के लिए किया जाता है जो सामान्य स्थान पर हैं
<पथ>
- pathelement टैग आम स्थान के रूट को सेट करेगा जहां सभी फाइलें संग्रहीत हैं
- pathconvert टैग पथ टैग के अंदर सभी सामान्य फ़ाइल के पथ को सिस्टम के क्लासपैथ प्रारूप में बदलने के लिए उपयोग किया जाता है
- फाइलसेट टैग हमारे प्रोजेक्ट में अलग-अलग थर्ड पार्टी जार के लिए क्लासपैथ सेट करता था
शामिल हैं - कंसोल पर टेक्स्ट प्रिंट करने के लिए इको टैग का उपयोग किया जाता है
<गूंज संदेश = "मौजूदा निर्माण निर्देशिका को हटाना" />
- डिलीट टैग दिए गए फोल्डर से डेटा को क्लीन करेगा
हटाएं
- mkdir टैग एक नई निर्देशिका बनाएगा
- जावा टैग का उपयोग जावा स्रोत कोड को संकलित करने और एक नए फ़ोल्डर में .class फ़ाइलों को स्थानांतरित करने के लिए किया जाता है
javac>
- जार टैग .class फ़ाइलों से जार फ़ाइल बनाएगा
- मैनिफ़ेस्ट टैग निष्पादन के लिए आपका मुख्य वर्ग निर्धारित करेगा
<प्रकट><विशेषता नाम = "मुख्य-वर्ग" मूल्य = "परीक्षण। मुख्य" /> प्रकटीकरण>
- 'निर्भर करता है' विशेषता का उपयोग एक लक्ष्य को दूसरे लक्ष्य पर निर्भर करने के लिए किया जाता है
<लक्ष्य नाम = "रन" निर्भर करता है = "संकलन">
- java टैग मुख्य लक्ष्य संकलित अनुभाग में निर्मित जार से निष्पादित करेगा
<जावा जार = "$ {ytoperation.dir} /YTOperation.jar" कांटा = "सच" />
चींटी को ग्रहण प्लगइन का उपयोग करके चलाएँ
ग्रहण से चींटी को चलाने के लिए build.xml फ़ाइल पर जाएँ -> फ़ाइल पर राइट क्लिक करें -> के रूप में चलाएँ
… - बिल्ड फ़ाइल पर क्लिक करेंउदाहरण:
हम एक छोटा सा नमूना कार्यक्रम लेंगे जो चींटी की कार्यक्षमता को बहुत स्पष्ट रूप से समझाएगा। हमारी परियोजना संरचना जैसी दिखेगी -
यहाँ इस उदाहरण में हमारे पास 4 लक्ष्य हैं
- बाहरी जार के लिए श्रेणी पथ सेट करें,
- पहले से संकलित कोड को साफ करें
- मौजूदा जावा कोड संकलित करें
- कोड चलाएँ
गुरु 99AntClass.class
पैकेज परीक्षणआयात java.util.Date;सार्वजनिक वर्गसार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग… s) {System.out.println ("हेलो गुरू 99 एनटी प्रोग्राम");System.out.println ("TODAY's DATE IS ->" + currentDate ());}सार्वजनिक स्थिर स्ट्रिंग चालू () {नई तारीख लौटाएँ ();}}बिल्ड.xml
xml संस्करण = "1.0" एन्कोडिंग = "UTF-8" स्टैंडअलोन = "नहीं"?><परियोजना का नाम = "YTMonetize" आधारित = "।"><संपत्ति का नाम = "build.dir" मान = "$ {आधारित} / निर्माण" /><संपत्ति का नाम = "external.jars" मान = "। \ संसाधन" /><संपत्ति का नाम = "ytoperation.dir" मान = "$ {external.jars} / YTOperation" /><संपत्ति का नाम = "src.dir" मान = "$ {आधारित} / src" /> 'निर्भर करता है' विशेषता एक लक्ष्य को दूसरे लक्ष्य पर निर्भर करने के लिए उपयोग की जाती है -><लक्ष्य नाम = "setClassPath"><पथ>पथ> लक्ष्य><लक्ष्य नाम = "स्वच्छ"><गूंज संदेश = "मौजूदा निर्माण निर्देशिका को हटाना" /> हटाएं लक्ष्य><लक्ष्य नाम = "संकलन" निर्भर करता है = "स्वच्छ, सेटक्लासपाथ"><इको संदेश = "क्लासपैथ: $ {test.classpath}" /><गूंज संदेश = "संकलन ..." /> <इको संदेश = "क्लासपैथ: $ {test.classpath}" /><गूंज संदेश = "संकलन ..." /> javac> <प्रकट><विशेषता नाम = "मुख्य-वर्ग" मान = "testAnt.Guru99AntClass" /> प्रकटीकरण> जार> लक्ष्य><लक्ष्य नाम = "रन" निर्भर करता है = "संकलन"> में बनाए गए जार से मुख्य कार्य को अंजाम देगा<जावा जार = "$ {ytoperation.dir} /YTOperation.jar" कांटा = "सच" /> लक्ष्य> प्रोजेक्ट>
चींटी का उपयोग करके TestNG कोड को कैसे निष्पादित करें
यहां हम Testng विधियों के साथ एक क्लास बनाएंगे और build.xml में परीक्षण के लिए वर्ग पथ सेट करेंगे।
अब testng पद्धति को निष्पादित करने के लिए हम एक और testng.xml फ़ाइल बनाएंगे और इस फ़ाइल को build.xml फ़ाइल से कॉल करेंगे।
चरण 1) हम पैकेज testAnt में एक " Guru99AntClass.class" बनाते हैं
गुरु 99AntClass.class
पैकेज परीक्षणआयात java.util.Date;आयात org.testng.annotations.Test;सार्वजनिक वर्ग@परीक्षासार्वजनिक शून्यSystem.out.println ("हेलो गुरू 99 एनटी प्रोग्राम");System.out.println ("TODAY's DATE IS ->" + currentDate ());}सार्वजनिक स्थिर स्ट्रिंग चालू () {नई तारीख लौटाएँ ();}}
चरण 2) इस वर्ग को Build.xml में लोड करने के लिए एक लक्ष्य बनाएं
<लक्ष्य नाम = "loadTestNG" निर्भर करता है = "setClassPath"> का उपयोग करके परीक्षण कोड चला सकते हैंलक्ष्य>
चरण 3) testng.xml बनाएँ
testng.xml
xml संस्करण = "1.0" एन्कोडिंग = "UTF-8"?><सुइट का नाम = "YT" थ्रेड-काउंट = "1"><परीक्षण नाम = "GURU99TestNGAnt"><कक्षाएं><वर्ग नाम = "testAnt.Guru99AntClass"> वर्ग> कक्षाएं> परीक्षण> सूट>
चरण 4) इस TestNG कोड को चलाने के लिए Build.xml में लक्ष्य बनाएं
<लक्ष्य नाम = "runGuru99TestNGAnt" निर्भर करता है = "संकलन">शामिल हैं testng>
चरण 5) पूर्ण Build.xml
xml संस्करण = "1.0" एन्कोडिंग = "UTF-8" स्टैंडअलोन = "नहीं"?><परियोजना का नाम = "YTMonetize" आधारित = "।"><संपत्ति का नाम = "build.dir" मान = "$ {आधारित} / निर्माण" /><संपत्ति का नाम = "external.jars" मान = "। \ संसाधन" /><संपत्ति का नाम = "src.dir" मान = "$ {आधारित" / src "/><लक्ष्य नाम = "loadTestNG" निर्भर करता है = "setClassPath">लक्ष्य><लक्ष्य नाम = "setClassPath"><पथ> शामिल हैं पथ> लक्ष्य><लक्ष्य नाम = "स्वच्छ"><गूंज संदेश = "मौजूदा निर्माण निर्देशिका को हटाना" /> हटाएं लक्ष्य><लक्ष्य नाम = "संकलन" निर्भर करता है = "स्वच्छ, setClassPath, loadTestNG"><इको संदेश = "क्लासपैथ: $ {test.classpath}" /><गूंज संदेश = "संकलन ..." /> <इको संदेश = "क्लासपैथ: $ {test.classpath}" /><गूंज संदेश = "संकलन ..." /> javac> लक्ष्य><लक्ष्य नाम = "runGuru99TestNGAnt" निर्भर करता है = "संकलन"> का उपयोग करके testng कोड निष्पादित करने के लिए उपयोग किया जाएगा शामिल हैं testng> लक्ष्य> प्रोजेक्ट>
चरण 6) आउटपुट
उपरोक्त फ़ाइल डाउनलोड करें
सेलेनियम वेबड्राइवर के साथ चींटी:
अब तक, हमने सीखा है कि ANT का उपयोग करके हम सिस्टम में किसी विशेष स्थान पर सभी तीसरे पक्ष के जार डाल सकते हैं और हमारी परियोजना के लिए अपना रास्ता निर्धारित कर सकते हैं। इस पद्धति का उपयोग करके हम एक ही स्थान पर अपनी परियोजना की सभी निर्भरताएं निर्धारित कर रहे हैं और इसे संकलन, निष्पादन और तैनाती के लिए अधिक विश्वसनीय बना रहे हैं।
इसी तरह, सेलेनियम का उपयोग कर हमारी परीक्षण परियोजनाओं के लिए, हम आसानी से बिल्ड.xml में सेलेनियम निर्भरता का उल्लेख कर सकते हैं और हमें अपने आवेदन में मैन्युअल रूप से इसका एक वर्ग पथ जोड़ने की आवश्यकता नहीं है।
तो अब आप प्रोजेक्ट के लिए क्लासपैथ सेट करने के लिए नीचे बताए गए पारंपरिक तरीके को अनदेखा कर सकते हैं।
उदाहरण:
हम पिछले उदाहरण को संशोधित करने जा रहे हैं
चरण 1) संसाधन सेलेनियम से संबंधित संपत्ति सेलेनियम.जारों को संसाधन फ़ोल्डर में सेट करें
<गुण नाम = "selenium.jars" मान = "। \" selenium "/>
चरण 2) लक्ष्य setClassPath में, सेलेनियम फ़ाइलें जोड़ें
<लक्ष्य नाम = "setClassPath"><पथ>शामिल हैं शामिल हैं पथ>
चरण 3) Build.xml को पूरा करें:
xml संस्करण = "1.0" एन्कोडिंग = "UTF-8" स्टैंडअलोन = "नहीं"?><परियोजना का नाम = "YTMonetize" आधारित = "।"><संपत्ति का नाम = "build.dir" मान = "$ {आधारित} / निर्माण" /><संपत्ति का नाम = "external.jars" मान = "। \ संसाधन" /><गुण नाम = "selenium.jars" मान = "। \" selenium "/><संपत्ति का नाम = "src.dir" मान = "$ {आधारित" / src "/><लक्ष्य नाम = "loadTestNG" निर्भर करता है = "setClassPath">लक्ष्य><लक्ष्य नाम = "setClassPath"><पथ> शामिल हैं शामिल हैं पथ> लक्ष्य><लक्ष्य नाम = "स्वच्छ"><गूंज संदेश = "मौजूदा निर्माण निर्देशिका को हटाना" /> हटाएं लक्ष्य><लक्ष्य नाम = "संकलन" निर्भर करता है = "स्वच्छ, setClassPath, loadTestNG"><इको संदेश = "क्लासपैथ: $ {test.classpath}" /><गूंज संदेश = "संकलन ..." /> <इको संदेश = "क्लासपैथ: $ {test.classpath}" /><गूंज संदेश = "संकलन ..." /> javac> लक्ष्य><लक्ष्य नाम = "runGuru99TestNGAnt" निर्भर करता है = "संकलन"> का उपयोग करके testng कोड निष्पादित करने के लिए उपयोग किया जाएगा शामिल हैं testng> लक्ष्य> प्रोजेक्ट>
चरण 4) अब नए कोड के साथ पहले बनाए गए वर्ग गुरु 99AntClass.java को बदलें।
इस उदाहरण में सेलेनियम का उपयोग करने वाले हमारे चरण हैं:
- Http://demo.guru99.com/test/guru99home/ पर जाएं
- एक-एक करके सभी पाठ्यक्रमों के लिंक पढ़ें
- सभी पाठ्यक्रम हाइपरलिंक को कंसोल पर प्रिंट करें।
गुरु 99AntClass.java:
पैकेज परीक्षणआयात java.util.ist;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.WebElement;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.testng.annotations.Test;सार्वजनिक वर्ग@परीक्षासार्वजनिक शून्यWebDriver ड्राइवर = नया FirefoxDriver ();Driver.get ("http://demo.guru99.com/test/guru99home/");सूचीबद्ध करें(WebElement webElement: listAllCourseLinks) {System.out.println (webElement.getAttribute ("href"));}}}
चरण 5) सफल निष्पादन के बाद आउटपुट जैसा दिखेगा:
उपरोक्त उदाहरण फ़ाइल डाउनलोड करें
सारांश:
चींटी जावा के लिए एक निर्माण उपकरण है।
चींटी का उपयोग कोड संकलन, तैनाती, निष्पादन प्रक्रिया के लिए किया जाता है।
चींटी को अपाचे वेबसाइट से डाउनलोड किया जा सकता है।
चींटी का उपयोग करके निष्पादन लक्ष्य को कॉन्फ़िगर करने के लिए Build.xml फ़ाइल का उपयोग किया जाता है।
चींटी को कमांड लाइन या उपयुक्त आईडीई प्लगइन जैसे कि ग्रहण से चलाया जा सकता है।