Кіріспе
Java бағдарламалық құралы Apache Ant – Java қосымшалары үшін бағдарламалық құралымды автоматтандыруға арналған бағдарламалық құрал, ол 2000 жылдың басында Apache Tomcat жобасынан туындаған және Unix жүйесінің Make құралына алмастыру ретінде пайда болды. Ол Make-ке ұқсас, бірақ Java тілінде іске асырылған және Java платформасын қажет етеді. Make-тен айырмашылығы, ол Makefile форматын пайдаланса, Ant кодты құру процесі мен оның тәуелділіктерін сипаттау үшін XML-ді қолданады. Apache Software Foundation-нан Apache лицензиясымен шығарылған Ant – ашық кодты жоба.
Apache Ant is a software tool for automating software build processes for Java applications which originated from the Apache Tomcat project in early 2000 as a replacement for the Make build tool of Unix. It is similar to Make, but is implemented using the Java language and requires the Java platform. Unlike Make, which uses the Makefile format, Ant uses XML to describe the code build process and its dependencies. Released under an Apache License by the Apache Software Foundation, Ant is an open source project.
Тарих
Ant ("Тағы бір пайдалы құрал") Джеймс Дункан Дэвидсон Sun Microsystems компаниясының JSP және Servlet қозғалтқышын, кейін Apache Tomcat-ты ашық бастапқы код ретінде шығаруға дайындағанда ойлап тапты. Make-тің жекеменшік нұсқасы оны Solaris платформасында құру үшін қолданылды, бірақ ашық бастапқы код әлемінде Tomcat-ты құру үшін қандай платформа қолданылғанын бақылау мүмкін болмады; сондықтан Ant, Tomcat-ты XML "құрастыру файлындағы" директивалар арқылы платформадан тәуелсіз түрде құруға арналған қарапайым құрал ретінде құрылды. Ant (1.1 нұсқасы) 2000 жылдың 19 шілдесінде жеке өнім ретінде ресми түрде жарияланды. Ant 2 нұсқасы үшін бірнеше ұсыныстар жасалды, мысалы, Джеймс Дункан Дэвидсонның AntEater, Питер Дональдтың Myrmidon және Конор МакНиллдің Mutant, бірақ ешқайсысы әзірлеушілер қауымдастығында кең қолдау таппады. Бір кезде (2002) Ant көптеген Java әзірлеу жобаларында қолданылатын құрастыру құралы болды. Мысалы, көптеген ашық кодты Java әзірлеушілер өздерінің дистрибуцияларымен бірге build.xml файлдарын қосты. Ant JUnit тесттерін құрастыру процесімен біріктіруді жеңілдеткендіктен, әзірлеушілерге тесттік даму және экстремалды бағдарламалау әдістерін қабылдауға мүмкіндік берді. 2004 жылы Apache ұқсас мақсатта Maven деп аталатын жаңа құрал жасады. 2008 жылы Gradle құрылды, ол XML орнына Groovy (және басқа да бірнеше тілдер) кодын пайдаланады.
Ұзартулар
WOProject Ant – Ant үшін жазылған тапсырма кеңейтімдерінің көптеген мысалдарының бірі ғана. Бұл кеңейтімдер олардың jar файлдарын Ant-тің lib каталогына көшіру арқылы орнатылады. Бұл жасалғаннан кейін, бұл тапсырма кеңейтімдерін әдеттегі build.xml файлында тікелей шақыруға болады. WOProject кеңейтімдері WebObjects әзірлеушілеріне Apple-дің Xcode құралдарының жиынтығын пайдаланудың орнына өздерінің фреймворктері мен қосымшаларын құру үшін Ant-ті пайдалануға мүмкіндік береді. Antcontrib шартты операторлар мен қасиеттермен операциялар сияқты, сондай-ақ басқа да пайдалы тапсырмалар жиынтығын ұсынады. Antcontrib.unkrig.de желілік байланыс, Swing қолданушы интерфейстері, JSON өңдеу және тағы да басқаларын жүзеге асырады. Perforce, .NET Framework, EJB және файлдық жүйелермен жұмыс істеу үшін басқа тапсырма кеңейтімдері де бар.
Шектеулер
Ant құрастыру файлдары, XML-де жазылған, күрделі және сөз көп болуы мүмкін, себебі олар иерархиялық, жартылай реттелген және кеңінен байланысқан. Бұл күрделілік үйренуге кедергіл болуы мүмкін. Ірі немесе күрделі жобалардың құрастыру файлдары басқаруға қиын болатын үлкен көлемге жете алады. Құрастыру файлдарын жақсы жобалау және модулдеу оқуға қолайлылығын арттырады, бірақ міндетті түрде көлемін азайта бермейді. Көптеген ескі тапсырмалар, мысалы, және тапсырмалары, жаңа нұсқаларына сәйкес келмейтін опциялар үшін әдепкі мәндерді қолданады. Бұл әдепкілерді өзгерту қазіргі Ant скрипттерін жұмыс істемейтін қылып қоюы мүмкін. Строка немесе мәтін элементіндегі қасиеттерді кеңейткенде, анықталмаған қасиеттер қате ретінде қарастырылмайды, бірақ кеңейтілмеген сілтеме ретінде қалады (мысалы, ${unassigned. property}). Ant-тің қателерді өңдеу ережелері шектеулі. Кешіктірілген қасиеттерді бағалау қолдау көрсетілмейді. Мысалы, Antcontrib циклы ішінде жұмыс істегенде, қасиетті итерацияның бөлігі болатын қосалқы мән үшін қайта бағалауға болмайды. (Кейбір үшінші тарап кеңейтімдері осы мәселені шешуге көмектеседі; AntXtras ағын басқару жиынтықтары циклдар үшін курсорды қайта анықтау мүмкіндігін ұсынады.) Makefile файлдарында бір файл түрін екіншісінен жасау ережесі тікелей makefile файлының ішінде жазылуы мүмкін. Мысалы, басқа құралды іске қосу үшін ережелерді пайдаланып, құжатты басқа форматқа түрлендіруге болады. Ant-те ұқсас тапсырманы жасау күрделірек: бірдей функционалдылықты орындау үшін Java-да жеке тапсырма жазылып, Ant құрастыру файлына қосылуы керек. Дегенмен, бұл бөліну Ant скриптін оқуға қолайлырақ етеді, себебі тапсырманың әртүрлі платформаларда қалай орындалатынының кейбір егжей-тегжейлерін жасырады. Ant-тің жетіспейтін функционалдығын қамтамасыз ететін үшінші тарап кеңейтімдері (antlibs) бар. Сонымен қатар, Eclipse интеграцияланған даму ортасы (IDE) Ant скрипттерін құрастырып, іске қоса алады, ал NetBeans IDE өзінің ішкі құрастыру жүйесі үшін Ant-ті пайдаланады. Бұл екі IDE-нің де өте танымал даму платформалары болғандықтан, олар Ant-ті пайдалануды едәуір жеңілдетеді. (Қосымша бонустың орнына, NetBeans-пен жасалған Ant скрипттерін сол IDE-ден тыс дербес скрипттер ретінде пайдалануға болады.)