Шта је Апацхе Ант?
Током стварања комплетног софтверског производа, треба водити рачуна о различитим АПИ-јем треће стране, њиховој путањи класе, чишћењу претходних извршних бинарних датотека, компајлирању нашег изворног кода, извршавању изворног кода, креирању извјештаја и бази имплементационог кода итд. Ако су ови задаци готови један по један ручно, трајаће огромно време, а процес ће бити склон грешкама.
Овде долази важност алата за изградњу као што је Ант. Похрањује, извршава и аутоматизује сав процес у секвенцијалном редоследу наведеном у мрављевој конфигурационој датотеци (обично буилд.кмл).
Предност градње мрава
- Ант ствара животни циклус апликације, тј. Чисти, компајлира, поставља зависност, извршава, извештава итд.
- Зависност АПИ-ја треће стране може поставити Ант, тј. Пут класе друге Јар датотеке поставља Ант датотека изградње.
- Израђена је комплетна апликација за испоруку и примену од краја до краја.
- То је једноставан алат за израду где се све конфигурације могу извршити помоћу КСМЛ датотеке и које се могу извршити из командне линије.
- Чини ваш код чистим јер је конфигурација одвојена од стварне логике апликације.
Како инсталирати Ант
Кораци за инсталирање Ант-а у Виндовс су следећи
Корак 1) Идите на хттп://ант.апацхе.орг/биндовнлоад.цги Преузмите .зип датотеку са апацхе-ант-1.9.4-бин.зип
Корак 2) Распакујте мапу и идите до копирајте путању до корена распаковане мапе
Корак 3) Идите на Старт -> Цомпутер (Рачунар) -> овде кликните десним тастером миша и одаберите „Пропертиес“ (Својства), а затим кликните на Адванцед Систем Сеттингс (Напредне поставке система)
Корак 4) Отвара се нови прозор. Кликните на „Променљива околине“
… Дугме.Корак 5) Кликните на „Ново“
... 'и поставите име променљиве као' АНТ_ХОМЕ ', а вредност променљиве као основну путању до унзиппед фасцикле и кликните на ОК.Корак 6) сада изаберите променљиву „Патх“ са листе и кликните на „Едит“ и додајте; % АНТ_ХОМЕ% \ бин.
Поново покрените систем и спремни сте за употребу алата Ант буилд сада.
Корак 7) Да бисте проверили верзију свог Ант-а помоћу командне линије:
Мрава -верзија
Разумевање Буилд.кмл
Буилд.кмл је најважнија компонента алата за изградњу Ант. За Јава пројекат, сви задаци чишћења, подешавања, компајлирања и постављања наведени су у овој датотеци у КСМЛ формату. Када извршимо ову КСМЛ датотеку помоћу командне линије или било ког ИДЕ додатка, сва упутства записана у ову датотеку извршават ће се узастопно.
Хајде да разумемо код у узорку буилд.КСМЛ
- Ознака пројекта користи се за помињање назива пројекта и атрибута баседир. Баседир је основни директоријум апликације
<пројецт наме = "ИТМонетизе" баседир = ".">
- Ознаке својстава користе се као променљиве у датотеци буилд.КСМЛ које ће се користити у даљим корацима
<проперти наме = "буилд.дир" валуе = "$ {баседир} / буилд" /><проперти наме = "ектернал.јарс" валуе = ". \ ресоурцес" /><проперти наме = "итоператион.дир" валуе = "$ {ектернал.јарс} / ИТОператион" /><проперти наме = "срц.дир" валуе = "$ {баседир} / срц" />
- Циљане ознаке које се користе као кораци који ће се извршавати у низу. Атрибут наме је име циља. Можете имати више циљева у једном буилд.кмл
<таргет наме = "сетЦлассПатх">
- ознака патх користи се за групирање свих датотека које се налазе на заједничком месту
<патх>
- ознака патхелемент ће поставити путању до корена заједничке локације на којој се чувају све датотеке
<патхелемент патх = "$ {баседир} /" />
- ознака патхцонверт која се користи за претварање стаза свих уобичајених датотека унутар ознаке пута у системски формат цласспатх
<патхцонверт патхсеп = ";" својство = "тест.цласспатх" рефид = "цласспатх_јарс" />
- ознака скупа датотека која се користи за постављање стазе за класе за различите независне јар у нашем пројекту
<филесет дир = "$ {итоператион.дир}" укључује = "*. јар" />
- Ецхо таг се користи за штампање текста на конзоли
<ецхо мессаге = "брисање постојећег директорија за изградњу" />
- Ознака Делете ће очистити податке из дате мапе
<делете дир = "$ {буилд.дир}" />
- мкдир ознака ће створити нови директоријум
<мкдир дир = "$ {буилд.дир}" />
- јавац ознака која се користи за компајлирање изворног кода Јава и премештање .цласс датотека у нову фасциклу
<јавац дестдир = "$ {буилд.дир}" срцдир = "$ {срц.дир}"><цласспатх рефид = "цласспатх_јарс" />јавац>
- јар таг ће створити јар датотеку из .цласс датотека
<јар дестфиле = "$ {итоператион.дир} /ИТОператион.јар" баседир = "$ {буилд.дир}">
- ознака манифеста ће поставити вашу главну класу за извршење
<манифест><аттрибуте наме = "Маин-Цласс" валуе = "тест.Маин" />манифест>
- Атрибут 'зависи' који се користи за стварање једног циља да би зависио од другог циља
<таргет наме = "рун" зависи = "цомпиле">
- јава ознака ће извршити главну функцију из јар-а креираног у циљном одељку компајлирања
<јава јар = "$ {итоператион.дир} /ИТОператион.јар" форк = "труе" />
Покрените Ант користећи додатак Ецлипсе
Да бисте покренули Ант из ецлипсеа, идите на датотеку буилд.кмл -> десни клик на датотеку -> Рун ас
... -> кликните Буилд филеПример:
Узећемо мали узорак програма који ће врло јасно објаснити функционалност Мрава. Наша структура пројекта ће изгледати као -
Овде у овом примеру имамо 4 циља
- Поставите путању класе за спољне тегле,
- Очистите претходно испуњени код
- Компајлирање постојећег Јава кода
- Покрените код
Гуру99АнтЦласс.цласс
пакет тестАнт;импорт јава.утил.Дате;јавна класа Гуру99АнтЦласс {публиц статиц воид маин (Низ ... с) {Систем.оут.принтлн („ЗДРАВИ ГУРУ99 АНТ ПРОГРАМ“);Систем.оут.принтлн ("ДАНАС ЈЕ ДАТУМ ->" + цуррентДате ());}јавни статички низ цуррентДате () {врати нови Дате (). тоСтринг ();}}Буилд.кмл
кмл версион = "1.0" енцодинг = "УТФ-8" стандалоне = "но"?><пројецт наме = "ИТМонетизе" баседир = "."><проперти наме = "буилд.дир" валуе = "$ {баседир} / буилд" /><проперти наме = "ектернал.јарс" валуе = ". \ ресоурцес" /><проперти наме = "итоператион.дир" валуе = "$ {ектернал.јарс} / ИТОператион" /><проперти наме = "срц.дир" валуе = "$ {баседир} / срц" /> атрибут 'овиси' који се користи да би један циљ зависио од другог циља -><таргет наме = "сетЦлассПатх"><патх><патхелемент патх = "$ {баседир} /" />патх><патхцонверт патхсеп = ";" проперти = "тест.цласспатх" рефид = "цласспатх_јарс" />таргет><таргет наме = "цлеан"><ецхо мессаге = "брисање постојећег директорија за изградњу" /><делете дир = "$ {буилд.дир}" />таргет><таргет наме = "цомпиле" зависи = "цлеан, сетЦлассПатх"><ецхо мессаге = "цласспатх: $ {тест.цласспатх}" /><ецхо мессаге = "компајлирање ...." /><мкдир дир = "$ {буилд.дир}" /><ецхо мессаге = "цласспатх: $ {тест.цласспатх}" /><ецхо мессаге = "компајлирање ...." /><јавац дестдир = "$ {буилд.дир}" срцдир = "$ {срц.дир}"><цласспатх рефид = "цласспатх_јарс" />јавац><јар дестфиле = "$ {итоператион.дир} /ИТОператион.јар" баседир = "$ {буилд.дир}"><манифест><аттрибуте наме = "Маин-Цласс" валуе = "тестАнт.Гуру99АнтЦласс" />манифест>јар>таргет><таргет наме = "рун" зависи = "цомпиле"><јава јар = "$ {итоператион.дир} /ИТОператион.јар" форк = "труе" />таргет>пројецт>
Како извршити ТестНГ код помоћу Ант
Овде ћемо створити класу са тестнг методама и поставити пут до класе за тестирање у буилд.кмл.
Сада ћемо извршити тестнг метод, креираћемо још једну датотеку тестнг.кмл и позваћемо је из буилд.кмл датотеке.
Корак 1) У пакету тестАнт креирамо „ Гуру99АнтЦласс.цласс“
Гуру99АнтЦласс.цласс
пакет тестАнт;импорт јава.утил.Дате;импорт орг.тестнг.аннотатионс.Тест;јавна класа Гуру99АнтЦласс {@Тестјавна празнина Гуру99АнтТестНГМетход () {Систем.оут.принтлн („ЗДРАВИ ГУРУ99 АНТ ПРОГРАМ“);Систем.оут.принтлн ("ДАНАС ЈЕ ДАТУМ ->" + цуррентДате ());}јавни статички низ цуррентДате () {врати нови Дате (). тоСтринг ();}}
Корак 2) Направите циљ за учитавање ове класе у Буилд.кмл
<таргет наме = "лоадТестНГ" зависи = "сетЦлассПатх"><таскдеф ресоурце = "тестнгтаскс" цласспатх = "$ {тест.цласспатх}" />таргет>
Корак 3) Направите тестнг.кмл
тестнг.кмл
кмл версион = "1.0" енцодинг = "УТФ-8"?><суите наме = "ИТ" тхреад-цоунт = "1"><тест наме = "ГУРУ99ТестНГАнт"><класе><цласс наме = "тестАнт.Гуру99АнтЦласс">цласс>цлассес>тест>суите>
Корак 4) Створите циљ у Буилд.кмл за покретање овог ТестНГ кода
<таргет наме = "рунГуру99ТестНГАнт" зависи = "саставити"><тестнг цласспатх = "$ {тест.цласспатх}; $ {буилд.дир}"><кмлфилесет дир = "$ {баседир}" укључује = "тестнг.кмл" />тестнг>
Корак 5) Комплетна Буилд.кмл
кмл версион = "1.0" енцодинг = "УТФ-8" стандалоне = "но"?><пројецт наме = "ИТМонетизе" баседир = "."><проперти наме = "буилд.дир" валуе = "$ {баседир} / буилд" /><проперти наме = "ектернал.јарс" валуе = ". \ ресоурце" /><проперти наме = "срц.дир" валуе = "$ {баседир} / срц" /><таргет наме = "лоадТестНГ" зависи = "сетЦлассПатх"><таскдеф ресоурце = "тестнгтаскс" цласспатх = "$ {тест.цласспатх}" />таргет><таргет наме = "сетЦлассПатх"><патх><патхелемент патх = "$ {баседир} /" /><филесет дир = "$ {ектернал.јарс}" укључује = "*. јар" />патх><патхцонверт патхсеп = ";" проперти = "тест.цласспатх" рефид = "цласспатх_јарс" />таргет><таргет наме = "цлеан"><ецхо мессаге = "брисање постојећег директорија за изградњу" /><делете дир = "$ {буилд.дир}" />таргет><таргет наме = "цомпиле" зависи = "цлеан, сетЦлассПатх, лоадТестНГ"><ецхо мессаге = "цласспатх: $ {тест.цласспатх}" /><ецхо мессаге = "компајлирање ...." /><мкдир дир = "$ {буилд.дир}" /><ецхо мессаге = "цласспатх: $ {тест.цласспатх}" /><ецхо мессаге = "компајлирање ...." /><јавац дестдир = "$ {буилд.дир}" срцдир = "$ {срц.дир}"><цласспатх рефид = "цласспатх_јарс" />јавац>таргет><таргет наме = "рунГуру99ТестНГАнт" зависи = "саставити"><тестнг цласспатх = "$ {тест.цласспатх}; $ {буилд.дир}"><кмлфилесет дир = "$ {баседир}" укључује = "тестнг.кмл" />тестнг>таргет>пројецт>
Корак 6) Излаз
Преузмите горњу датотеку
Мрав са селенским веб погонитељем:
До сада смо сазнали да помоћу АНТ-а можемо ставити тегле свих независних произвођача на одређено место у систему и поставити пут за наш пројекат. Користећи ову методу постављамо све зависности нашег пројекта на једно место и чинимо га поузданијим за компилацију, извршење и примену.
Слично томе, за наше пројекте тестирања који користе селен, лако можемо да поменемо зависност од селена у буилд.кмл и не морамо ручно да додајемо пут до класе у нашу апликацију.
Дакле, сада можете занемарити доле поменути традиционални начин постављања путања предавања за пројекат.
Пример:
Изменићемо претходни пример
Корак 1) Поставите својство селениум.јарс на јар повезан са селеном у фасцикли ресурса
<проперти наме = "селениум.јарс" валуе = ". \ селениум" />
Корак 2) У циљни сетЦлассПатх додајте датотеке селена
<таргет наме = "сетЦлассПатх"><патх><патхелемент патх = "$ {баседир} /" /><филесет дир = "$ {ектернал.јарс}" укључује = "*. јар" /><филесет дир = "$ {селениум.јарс}" укључује = "*. јар" />патх>
Корак 3) Довршите Буилд.кмл:
кмл версион = "1.0" енцодинг = "УТФ-8" стандалоне = "но"?><пројецт наме = "ИТМонетизе" баседир = "."><проперти наме = "буилд.дир" валуе = "$ {баседир} / буилд" /><проперти наме = "ектернал.јарс" валуе = ". \ ресоурце" /><проперти наме = "селениум.јарс" валуе = ". \ селениум" /><проперти наме = "срц.дир" валуе = "$ {баседир} / срц" /><таргет наме = "лоадТестНГ" зависи = "сетЦлассПатх"><таскдеф ресоурце = "тестнгтаскс" цласспатх = "$ {тест.цласспатх}" />таргет><таргет наме = "сетЦлассПатх"><патх><патхелемент патх = "$ {баседир} /" /><филесет дир = "$ {ектернал.јарс}" укључује = "*. јар" /><филесет дир = "$ {селениум.јарс}" укључује = "*. јар" />патх><патхцонверт патхсеп = ";" својство = "тест.цласспатх" рефид = "цласспатх_јарс" />таргет><таргет наме = "цлеан"><ецхо мессаге = "брисање постојећег директорија за изградњу" /><делете дир = "$ {буилд.дир}" />таргет><таргет наме = "цомпиле" зависи = "цлеан, сетЦлассПатх, лоадТестНГ"><ецхо мессаге = "цласспатх: $ {тест.цласспатх}" /><ецхо мессаге = "компајлирање ...." /><мкдир дир = "$ {буилд.дир}" /><ецхо мессаге = "цласспатх: $ {тест.цласспатх}" /><ецхо мессаге = "компајлирање ...." /><јавац дестдир = "$ {буилд.дир}" срцдир = "$ {срц.дир}"><цласспатх рефид = "цласспатх_јарс" />јавац>таргет><таргет наме = "рунГуру99ТестНГАнт" зависи = "саставити"><тестнг цласспатх = "$ {тест.цласспатх}; $ {буилд.дир}"><кмлфилесет дир = "$ {баседир}" укључује = "тестнг.кмл" />тестнг>таргет>пројецт>
Корак 4) Сада промените претходно створену класу Гуру99АнтЦласс.јава новим кодом.
Овде у овом примеру наши кораци који користе Селениум су:
- Идите на хттп://демо.гуру99.цом/тест/гуру99хоме/
- Прочитајте све линкове курсева један по један
- Одштампајте хипервезу свих курсева на конзоли.
Гуру99АнтЦласс.јава:
пакет тестАнт;импорт јава.утил.Лист;импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.фирефок.ФирефокДривер;импорт орг.тестнг.аннотатионс.Тест;јавна класа Гуру99АнтЦласс {@Тестјавна празнина Гуру99АнтТестНГМетход () {Управљачки програм за ВебДривер = нови ФирефокДривер ();дривер.гет ("хттп://демо.гуру99.цом/тест/гуру99хоме/");Листа <ВебЕлемент> листАллЦоурсеЛинкс = дривер.финдЕлементс (Би.кпатх ("// див [@ цласс = 'цанвас-миддле'] // а"));за (ВебЕлемент вебЕлемент: листАллЦоурсеЛинкс) {Систем.оут.принтлн (вебЕлемент.гетАттрибуте ("хреф"));}}}
Корак 5) Након успешног извршавања излаз ће изгледати као:
Преузмите горњу датотеку примера
Резиме:
Ант је алат за изградњу Јава-а.
Мрав се користи за компилацију кода, примену, процес извршења.
Ант се може преузети са веб странице Апацхе.
Буилд.кмл датотека која се користи за конфигурисање циљева извршења помоћу Ант.
Ант се може покренути из командне линије или одговарајућег ИДЕ додатка попут ецлипсе.