Apache Ant (англ. ant — мураха і водночас акронім — «Another Neat Tool») — java-утиліта для автоматизації процесу збирання програмного продукту.
Тип | програма для автоматичного складання |
---|---|
Розробник | Apache Software Foundation |
Стабільний випуск | 1.9.3 (29 грудня 2013 ) |
Платформа | віртуальна машина Java |
Операційна система | крос-платформовий |
Мова програмування | Java |
Ліцензія | Apache License 2.0 |
Репозиторій | https://git-wip-us.apache.org/repos/asf/ant.git, https://gitbox.apache.org/repos/asf/ant.git |
Вебсайт | ant.apache.org |
|
Ant — платформонезалежний аналог UNIX-утиліти make, але з використанням мови Java, він вимагає платформи Java, і краще пристосований для Java-проєктів. Найпомітніша безпосередня різниця між Ant та Make те, що Ant використовує XML для опису процесу збирання і його залежностей, тоді як Make має свій власний формат Makefile. За умовчанням XML-файл називається build.xml.
Ant був створений в рамках проєкту Jakarta, сьогодні — самостійний проєкт першого рівня Apache Software Foundation.
Перша версія була розроблена інженером Sun Microsystems Джеймсом Девідсоном (James Davidson), який потребував утиліти подібної make, розробляючи першу референтну реалізацію J2EE.
Опис
На відміну від make, утиліта Ant повністю незалежна від платформи, потрібно лише наявність на застосовуваній системі встановленої робочого середовища Java — JRE. Відмова від використання команд операційної системи і формат XML забезпечують переносимість сценаріїв.
Управління процесом складання відбувається за допомогою XML-сценарію, який також називають Build-файлом. У першу чергу цей файл містить визначення проєкту, що складається з окремих цілей (Targets). Цілі порівняні з процедурами в мовах програмування і містять виклики команд-завдань (Tasks). Кожне завдання являє собою неподільну, атомарному команду, що виконує певну елементарну дію.
Між цілями можуть бути визначені залежності — кожна мета виконується тільки після того, як виконані всі цілі, від яких вона залежить (якщо вони вже були виконані раніше, повторного виконання не здійснюється).
Типовими прикладами цілей є clean (видалення проміжних файлів), compile (компіляція всіх класів), deploy (розгортання програми на сервері). Конкретний набір цілей та їхнього взаємозв'язку залежать від специфіки проєкту.
Ant дозволяє визначати власні типи завдань шляхом створення Java-класів, що реалізують певні інтерфейси.
Часто вживані завдання (Tasks)
Нижче наведено неповний перелік завдань з коротким описом. Актуальна версія програми (1.7) містить близько 150 типів завдань.
Код | Дія |
---|---|
Javac | компіляція Java-коду |
Copy | копіювання файлів |
Delete | видалення файлів і директорій |
Move | переміщення файлів і директорій |
Replace | заміщення фрагментів тексту у файлах |
JUnit | автоматичний запуск |
Exec | виконання зовнішньої команди |
Zip | створення архіву у форматі Zip |
CVS | виконання CVS-команди |
відправка | |
Xslt | накладення XSLT-перетворення |
Приклад сценарію
Цей сценарій визначає дві мети — clean і build. Перша виконує вилучення тимчасових файлів, друга — компіляцію і створення JAR-архіву. Мета build залежить від clean, тому при її запуску буде спочатку виконане очищення і тільки тоді — завдання власне збирання. Build також вибрана як мета за умовчанням. Це означає, що вона буде виконана при обробці даного сценарію без явної вказівки мети.
<?xml version="1.0"?> <project default="build"> <!-- Build application --> <target name="build" depends="clean" description="Builds the application"> <!-- Creates directories --> <mkdir dir="${build.classes}"/> <!-- Compiles the source files --> <javac srcdir="${java.dir}" destdir="${build.classes}" debug="false" deprecation="true" optimize="true" > <classpath refid="classpath" /> </javac> <!-- Copies the required files --> <copy todir="${build.classes}"> <fileset dir="${java.dir}"> <include name="**/*.properties" /> <include name="**/*.gif" /> </fileset> </copy> <!-- Creates the JAR-File --> <jar jarfile="${build.lib}/${name}.jar" manifest="${manifest}"> <fileset dir="${build.classes}"/> </jar> </target> <!-- Cleans up --> <target name="clean" description="Removes all temporary files"> <!-- Erases files --> <delete dir="${build.dir}" /> <delete dir="${dist.base}" /> <delete dir="${defaultdist.dir}" /> <delete> <fileset dir="." includes="**/*~" defaultexcludes="no"/> </delete> </target> </project>
Дивись також
- Apache Maven — сучасніший інструмент з схожими завданнями
Посилання
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina Apachi znachennya Apache Ant angl ant muraha i vodnochas akronim Another Neat Tool java utilita dlya avtomatizaciyi procesu zbirannya programnogo produktu Apache Ant Another Neat Tool Tipprograma dlya avtomatichnogo skladannyaRozrobnikApache Software FoundationStabilnij vipusk1 9 3 29 grudnya 2013 10 rokiv tomu 2013 12 29 Platformavirtualna mashina JavaOperacijna sistemakros platformovijMova programuvannyaJavaLicenziyaApache License 2 0Repozitorijhttps git wip us apache org repos asf ant git https gitbox apache org repos asf ant gitVebsajtant apache org Mediafajli u Vikishovishi Ant platformonezalezhnij analog UNIX utiliti make ale z vikoristannyam movi Java vin vimagaye platformi Java i krashe pristosovanij dlya Java proyektiv Najpomitnisha bezposerednya riznicya mizh Ant ta Make te sho Ant vikoristovuye XML dlya opisu procesu zbirannya i jogo zalezhnostej todi yak Make maye svij vlasnij format Makefile Za umovchannyam XML fajl nazivayetsya build xml Ant buv stvorenij v ramkah proyektu Jakarta sogodni samostijnij proyekt pershogo rivnya Apache Software Foundation Persha versiya bula rozroblena inzhenerom Sun Microsystems Dzhejmsom Devidsonom James Davidson yakij potrebuvav utiliti podibnoyi make rozroblyayuchi pershu referentnu realizaciyu J2EE OpisNa vidminu vid make utilita Ant povnistyu nezalezhna vid platformi potribno lishe nayavnist na zastosovuvanij sistemi vstanovlenoyi robochogo seredovisha Java JRE Vidmova vid vikoristannya komand operacijnoyi sistemi i format XML zabezpechuyut perenosimist scenariyiv Upravlinnya procesom skladannya vidbuvayetsya za dopomogoyu XML scenariyu yakij takozh nazivayut Build fajlom U pershu chergu cej fajl mistit viznachennya proyektu sho skladayetsya z okremih cilej Targets Cili porivnyani z procedurami v movah programuvannya i mistyat vikliki komand zavdan Tasks Kozhne zavdannya yavlyaye soboyu nepodilnu atomarnomu komandu sho vikonuye pevnu elementarnu diyu Mizh cilyami mozhut buti viznacheni zalezhnosti kozhna meta vikonuyetsya tilki pislya togo yak vikonani vsi cili vid yakih vona zalezhit yaksho voni vzhe buli vikonani ranishe povtornogo vikonannya ne zdijsnyuyetsya Tipovimi prikladami cilej ye clean vidalennya promizhnih fajliv compile kompilyaciya vsih klasiv deploy rozgortannya programi na serveri Konkretnij nabir cilej ta yihnogo vzayemozv yazku zalezhat vid specifiki proyektu Ant dozvolyaye viznachati vlasni tipi zavdan shlyahom stvorennya Java klasiv sho realizuyut pevni interfejsi Chasto vzhivani zavdannya Tasks Nizhche navedeno nepovnij perelik zavdan z korotkim opisom Aktualna versiya programi 1 7 mistit blizko 150 tipiv zavdan Kod Diya Javac kompilyaciya Java kodu Copy kopiyuvannya fajliv Delete vidalennya fajliv i direktorij Move peremishennya fajliv i direktorij Replace zamishennya fragmentiv tekstu u fajlah JUnit avtomatichnij zapusk Exec vikonannya zovnishnoyi komandi Zip stvorennya arhivu u formati Zip CVS vikonannya CVS komandi Mail vidpravka Xslt nakladennya XSLT peretvorennyaPriklad scenariyuCej scenarij viznachaye dvi meti clean i build Persha vikonuye viluchennya timchasovih fajliv druga kompilyaciyu i stvorennya JAR arhivu Meta build zalezhit vid clean tomu pri yiyi zapusku bude spochatku vikonane ochishennya i tilki todi zavdannya vlasne zbirannya Build takozh vibrana yak meta za umovchannyam Ce oznachaye sho vona bude vikonana pri obrobci danogo scenariyu bez yavnoyi vkazivki meti lt xml version 1 0 gt lt project default build gt lt Build application gt lt target name build depends clean description Builds the application gt lt Creates directories gt lt mkdir dir build classes gt lt Compiles the source files gt lt javac srcdir java dir destdir build classes debug false deprecation true optimize true gt lt classpath refid classpath gt lt javac gt lt Copies the required files gt lt copy todir build classes gt lt fileset dir java dir gt lt include name properties gt lt include name gif gt lt fileset gt lt copy gt lt Creates the JAR File gt lt jar jarfile build lib name jar manifest manifest gt lt fileset dir build classes gt lt jar gt lt target gt lt Cleans up gt lt target name clean description Removes all temporary files gt lt Erases files gt lt delete dir build dir gt lt delete dir dist base gt lt delete dir defaultdist dir gt lt delete gt lt fileset dir includes defaultexcludes no gt lt delete gt lt target gt lt project gt Divis takozhApache Maven suchasnishij instrument z shozhimi zavdannyamiPosilannya