Apache Ant: Porovnání verzí

Smazaný obsah Přidaný obsah
update verze
aktualizace verze, výslovnost, typografie + eliminace duplicitního linku (ponechán ten v infoboxu)
Řádek 8:
| popisek =
| vývojář = Apache Software Foundation
| první vydání = [[červenec]] [[2000]]
| aktuální verze = 1.9.3
| programovacíaktuální jazykverze = 1.10.1
| datum aktuální verze = [[296. prosinec|29. prosinceúnor]]a [[20132017]]
| programovací jazyk = [[Java (programovací jazyk)|Java]]
| platforma = [[Java SE]]
| operační systém = [[multiplatformnost|multiplatformní]]
| typ softwaru = sestavovací nástroj
| licence = Apache License 2.0
| web = [http://ant.apache.org ant.apache.org]
}}
'''Apache Ant''' je nástroj pro sestavování softwarových aplikací. Umožňuje automatizovat řadu činností od kompilace, testování, až po vytvoření balíku pro distribuci. Princip Antu je shodný s unixovým nástrojem [[Make]], avšak na rozdíl od něho se skripty píší v jazyce [[Extensible Markup Language|XML]]. Nástroj samotný je napsaný kompletně v jazyce [[Java (programovací jazyk)|Java]]. Z toho vyplývá jeho největší výhoda – platformní nezávislost.
 
'''Apache Ant''' ([[angličtina|anglická]] výslovnost [əˈpæči ænt]) je nástroj pro sestavování softwarových aplikací. Umožňuje automatizovat řadu činností od kompilace, testování, až po vytvoření balíku pro distribuci. Princip Antu je shodný s  unixovým nástrojem [[Make]], avšak na rozdíl od něho se skripty píší v  jazyce [[Extensible Markup Language|XML]]. Nástroj samotný je napsaný kompletně v  jazyce [[Java (programovací jazyk)|Java]]. Z  toho vyplývá jeho největší výhoda – platformní nezávislost.
Ant je podporovaný řadou vývojových prostředí. Z nejznámějších lze jmenovat [[Eclipse (vývojové prostředí)|Eclipse]] a IntelliJ IDEA. [[Netbeans]] jej používá dokonce jako výchozí nástroj pro sestavování projektů.
 
Ant je podporovaný řadou vývojových prostředí. Z  nejznámějších lze jmenovat [[Eclipse (vývojové prostředí)|Eclipse]] a IntelliJ IDEA. [[Netbeans]] jej používá dokonce jako výchozí nástroj pro sestavování projektů.
Ant je open source projektem organizace Apache Software Foundation. Podmínky jeho použití upravuje licence Apache License 2.0.<ref>http://ant.apache.org/license.html</ref>
 
Ant je open source projektem organizace Apache Software Foundation. Podmínky jeho použití upravuje licence Apache License 2.0.<ref>http: name="licence" //ant.apache.org/license.html</ref>
Alternativu tvoří již zmíněný [[Make]]. Jeho nevýhodou oproti Antu je, že používá příkazy a programy hostitelského systému. Proto je přenositelnost jeho konfigurace mezi platformami velmi nízká. Druhou alternativou je komplexněji pojatý nástroj pro řízení celého životního cyklu programu – [[Apache maven|Apache Maven]]. Oproti Antu má řadu funkcí navíc, nicméně na některé specifické projekty ani to nemusí stačit. V takovém případě může být výhodnější použít Ant právě pro jeho snadnou rozšiřitelnost.
 
Alternativu tvoří již zmíněný [[Make]]. Jeho nevýhodou oproti Antu je, že používá příkazy a programy hostitelského systému. Proto je přenositelnost jeho konfigurace mezi platformami velmi nízká. Druhou alternativou je komplexněji pojatý nástroj pro řízení celého životního cyklu programu – [[Apache maven|Apache Maven]]. Oproti Antu má řadu funkcí navíc, nicméně na některé specifické projekty ani to nemusí stačit. V &nbsp;takovém případě může být výhodnější použít Ant právě pro jeho snadnou rozšiřitelnost.
 
== Historie ==
Autorem Antu je James Duncan Davidson. Vytvořil jej pro sestavování servletového kontejneru Apache Tomcat nezávisle na cílové platformě. První samostatná verze 1.1 byla uvolněna v &nbsp;červenci roku 2000.<ref>http: name="historie" //ant.apache.org/faq.html#history</ref>
 
Postupem času se Ant rozšířil do řady dalších open source projektů a dnes je prakticky jedním ze standardů pro sestavování aplikací psaných v &nbsp;jazyce [[Java (programovací jazyk)|Java]]. Velká popularita Antu vedla i ke vzniku verzí pro platformu [[.NET]] a jazyk [[PHP]].
 
== Použití ==
K popsání sestavovacího procesu Antu pro zvolený projekt je třeba vytvořit konfigurační soubor ve formátu [[Extensible Markup Language|XML]], zpravidla nese název <code>build.xml</code>. Velké projekty se často skládají z &nbsp;dalších podprojektů a proto Ant umožňuje definovat závislosti na dílčích konfiguračních souborech. Nejprve jsou v &nbsp;definované hierarchii sestaveny všechny podprojekty a až poté hlavní projekt. Sestavení se provede po zavolání následujícího příkazu v &nbsp;adresáři projektu.
<source lang="bash">
ant [cíl]
</source>
 
Předpokladem je správné nastavení proměnných prostředí <code>PATH</code> i <code>JAVA_HOME</code> dle dokumentace a přítomnost konfiguračního souboru <code>build.xml</code> v &nbsp;tomto adresáři. Není-li zadán parametr cíl, použije se výchozí.
Následuje příklad souboru <code>build.xml</code>:
<source lang="xml">
Řádek 70 ⟶ 73:
 
=== Cíle ===
V konfiguračním souboru <code>build.xml</code> jsou pomocí tagu <code>target</code> definovány cíle, kterých má být v &nbsp;rámci procesu sestavení dosaženo. Každý cíl má svůj název a kromě toho může mít definován v &nbsp;atributu <code>depends</code> také seznam závislostí na dalších cílech, které musí být vykonány před ním. V &nbsp;kořenovém tagu <code>project</code> se v &nbsp;atributu <code>default</code> udává výchozí cíl, jenž bude zpracován v &nbsp;případě, že Antu explicitně neurčíme jiný.
 
Na příkladu uvedeném výše jsou definovány cíle ''init'', ''compile'', ''archive'' a ''clean''. Jako výchozí je určen cíl ''archive'' a proto bude vykonán, neurčíme-li Antu jinak. Z &nbsp;definovaných závislostí vyplývá, že před ním musí proběhnout cíl ''compile''. Kompilace se ale nemůže spustit, dokud není vykonán cíl ''init''. Proto bude sestavování ukázkového projektu probíhat přesně v &nbsp;opačném pořadí. Nejprve se vykoná cíl ''init'', následně ''compile'' a nakonec ''archive''.
 
Ant dokáže samostatně zpracovat libovolný z &nbsp;definovaných cílů, ale vždy předtím zpracuje i jeho závislosti. Zavoláme-li ho s &nbsp;parametrem ''compile'', zpracuje nejprve závislost ''init'' a poté zkompiluje třídy ukázkového projektu. Dalšími cíli se již zabývat nebude.
 
=== Konstanty ===
Pomocí tagu <code>property</code> lze nastavit konstanty a tím usnadnit parametrizaci nebo potenciální úpravy souboru konfigurace v &nbsp;<code>build.xml</code>. Takto je možné načítat i proměnné prostředí či externí soubory s &nbsp;definicí konstant. Vždy se jedná o &nbsp;konstanty v &nbsp;pravém slova smyslu. Jakmile se jednou nastaví, další pokusy změnu hodnoty jsou ignorovány. Této vlastnosti lze využít a nastavit některé konstanty pomocí parametrů při spouštění Antu – jejich další přenastavení v &nbsp;<code>build.xml</code> bude ignorováno.<ref>http: name="root1" //www.root.cz/clanky/ant-nebojte-se-mravence/</ref>
 
Pomocí definovaných konstant je možné také podmínit vykonání některého cíle. Do tagu <code>target</code> se přidá atribut <code>if</code> a nebo <code>unless</code> s &nbsp;hodnotou odpovídající jménu konstanty. Takový cíl je poté vykonán pouze, pokud je a nebo není daná konstanta definovaná.
 
=== Úkoly ===
V rámci jednotlivých cílů je možné používat řadu úkolů, v &nbsp;terminologii Antu označených výrazem <code>task</code>. Úkoly jsou zodpovědné za vykonávání specifických činností sestavovacího procesu. Jsou vykonávány postupně podle jejich pořadí v &nbsp;rámci cíle. Je možné se setkat se třemi typy úkolů.<ref name="root2">http: //www.root.cz/clanky/ant-nebojte-se-mravence-2/</ref>
 
Prvním z &nbsp;nich jsou úkoly vestavěné v &nbsp;Antu. Je jich celá řada a pokrývají všechny běžné funkce od vytvoření nebo smazání adresáře, kompilace, generování dokumentace, vytváření jar archivu, vytváření nebo validaci XML dokumentů, spouštění unit testů, spouštění programu, práce s &nbsp;FTP serverem, odesílání emailu, a tak dále.
 
Další skupinu tvoří úkoly třetích stran. Množství doplňujících úkolů do Antu vytvořili jeho uživatelé a dali veřejně k &nbsp;dispozici ostatním.<ref name="root2" />
 
Pokud není požadovaná funkcionalita k &nbsp;dispozici ani v &nbsp;jedné z &nbsp;předchozích skupin, lze si naprogramovat úkoly vlastní, jelikož Ant obsahuje otevřené a dokumentované API. Stačí vytvořit potomka třídy <code>org.apache.tools.ant.Task</code>, překrýt jeho metodu <code>execute</code> a pro všechny atributy definovat set metody. Níže uvedený příklad ukazuje, jak lze vytvořit jednoduchý úkol. Jedinou jeho funkcí je vypsání zadaného parametru ''message''. Funguje obdobně jako vestavěný úkol <code>echo</code>.
<source lang="java">
package org.sampleproject;
Řádek 119 ⟶ 122:
 
== Omezení ==
Apache Ant má řadu využití. Je vhodné použít ho všude tam, kde projekt přerostl jednoho vývojáře a jeho sestavení včetně testování vyžaduje komplexní přístup. Nicméně i přes zřejmé výhody se k &nbsp;některým věcem úplně nehodí. Jeho ovládání přes příkazovou řádku a chybové hlášky ho předurčují k &nbsp;používání programátorům. Není vhodné nutit koncové uživatele spouštět nebo sestavovat projekty pomocí Antu. Pokud se vyskytne problém, sestavování projektu je zastaveno a Ant vypíše chybovou hlášku. Ta bude srozumitelná pouze programátorovi.
 
Ant také není vhodný pro začátečníky. Vytvoření konfiguračního souboru <code>build.xml</code> může být poměrně pracné a pokud je cílem pouze zkompilovat pár řádků kódu nebo spustit testy, bohatě postačí [[Vývojové prostředí|IDE]].
Řádek 134 ⟶ 137:
| rok = 2007
| isbn = 1-932394-80-X
| jazyk = en
}}
 
== Reference ==
<references/>
<ref name="licence">{{Citace elektronické monografie
| titul = Apache Ant - License
| url = http://ant.apache.org/license.html
| vydavatel = The Apache Software Foundation
| datum aktualizace = 2017-06-21
| datum přístupu = 2017-08-04 | jazyk = en
}}</ref>
<ref name="historie">{{Citace elektronické monografie
| titul = Apache Ant - Frequently Asked Questions
| kapitola = History
| url = http://ant.apache.org/faq.html#history
| vydavatel = The Apache Software Foundation
| datum aktualizace = 2017-06-21
| datum přístupu = 2017-08-04
| jazyk = en
}}</ref>
<ref name="root1">{{Citace elektronické monografie
| příjmení = Martin
| jméno = Hynar
| korporace = [[Root.cz]]
| titul = ANT - nebojte se mravence - Root.cz
| url = http://www.root.cz/clanky/ant-nebojte-se-mravence
| vydavatel = Internet Info, s.r.o.
| datum vydání = 2003-02-06
| datum přístupu = 2017-08-04
| issn = 1212-8309
| jazyk = cs
}}</ref>
<ref name="root2">{{Citace elektronické monografie
| příjmení = Martin
| jméno = Hynar
| korporace = [[Root.cz]]
| titul = ANT - nebojte se mravence (2) - Root.cz
| url = http://www.root.cz/clanky/ant-nebojte-se-mravence-2
| vydavatel = Internet Info, s.r.o.
| datum vydání = 2003-02-14
| datum přístupu = 2017-08-04
| issn = 1212-8309
| jazyk = cs
}}</ref>
</references>
 
== Externí odkazy ==
* [http://ant.apache.org/ ant.apache.org] – Domovská stránka Apache Ant
 
[[Kategorie:Software v Javě]]