Hlavní navigace

Používáme Javu na Linuxu, kompilujeme s Mravencem

binary runner

Programujete-li v Javě, jistě vám přijde vhod javovská obdoba UNIXové utility make, prostě další pěkný nástroj (Another Neat Tool) Ant.

Ant vs. make

Logo Ant Pro překlad C programů na UNIXu vznikl program make. Jeho vznik se datuje snad někam do sedmdesátých letech a je to na něm také vidět — syntax odpudivá, vzpomeňme zvláště oblíbené odsazování příkazů tabelátory. Stejně tak rozšiřitelnost pomocí volání externích programů je v heterogenním prostředí přístup obtížně využitelný.

Proto pod křídly Apache Software Foundation vznikl Ant. Jde o aplikaci sloužící k sestavování velkých softwarových projektů, tak ostatně Ant i vznikl – při vývoji JSP kontejneru Jakarta Tomcat. O jeho kvalitách svědčí, kromě množství softwaru (za všechny jmenujme javadoc či eclipse), který s ním umí spolupracovat, i mnohá ocenění. Od Software Development Magazine dostal Ant Productivity Award 2002, JavaWorld ho zase ocenil jako Most Useful Java Community-Developed Technology.

Instalace a nastavení prostředí

Ant si můžeme stáhnout z jeho domovské stránky na apache.org. Distribuční balík si stáhneme ve formátu vhodném pro cílovou platformu a rozbalíme ho třeba do /usr/java/ant (i když podle LSB by bylo možná správnější /opt/ant). Pro používání Antu to ale nestačí, musíme ještě nastavit proměnné prostředí. U bashe toho dosáhneme vložením následujících řádků do .bash_profile nebo systémového /etc/profile:
export ANT_HOME=/usr/java/ant
export PATH=${PATH}:${ANT_HOME}/bin

Výše zmíněné nastavení by mělo zaručit, že Ant bude fungovat správně. Pokud narazíte na problémy, rozhodně zkuste nejnovější verzi, možná jste narazili na chybu, která je v ní už odstraněná. Verze 1.5 navíc přináší, kromě podpory assertions JDK 1.4, velmi užitečný příkaz -diagnostics, jehož výstup je při hledání zdroje potíží doslova neocenitelný. Další přepínače, které se vyplatí si pamatovat, jsou -debug a -verbose

Z možných problémů bych si dovolil vybrat jeden poměrně častý s hůře odhalitelným zdrojem. Projevuje se poněkud zavádějícím chybovým hlášením Cannot use modern/classic compiler. To ovšem může být způsobeno několika různými příčinami — nenastavením proměnných JAVA_HOME nebo ANT_HOME, tím, že Ant nemůže najít rt.jar nebo tools.jar, nebo naopak výskytem ant.jar v $JAVA_HOME/jre/lib/ext.

Project, target, task

Ant zpracovává konfigurační soubory s XML syntaxí. Každý soubor, defaultně pojmenovaný build.xml, obsahuje jeden projekt a nejméně jeden cíl (target). Každý se skládá, kromě jiného, z několika úkolů (tasks). Pro každý task existuje třída, která ho zpracovává. Z toho je patrný styl rozšiřování — přidá se task a nasměruje se na třídu, která ho zpracovává. Těchto rozšíření je k dispozici velké množství a umožňují i kompilaci jiných jazyků, než je Java.

Ke zpracování některých tasků je potřeba mít nainstalovány konkrétní softwarové balíky. Javové archivy (*.jar) v nich obsažené se umísťují do $ANT_HOME/lib. Z těch nejzajímavějších jmenujme alespoň:

  • junit — spouštění unit testů (task junit)
  • xalan — XSLT processor (junitreport a další)
  • jdepend — závislosti (jdepend)
  • net components— ftp, telnet

Jedním z naprosto základních tasků je javac, umožňující nastavit podmínky překladu, mimo jiné zvolit kompilátor, který má být použit. Toho lze dosáhnout dvěma způsoby — buď nastavením atributu compiler, nebo, což ovlivní všechny výskyty javac, nastavením build.compiler: <property name="build.compiler" value="???"/>. Za ??? v našem případě dosadíme jednu z hodnot:

  • classic — kompilátor v JDK 1.2 a předcházejících
  • modern — kompilátor v JDK 1.3 a vyšších
  • jikes — open source IBM kompilátor Jikes
  • kjc — kompilátor kopi z Kaffe
  • gcj — kompilátor GCJ z projektu GCC

Budoucnost Antu, to je Myrmidon

Ano, Ant je dokonalý. Jeho tvůrci se však rozhodli přetvořit ho na ještě dokonalejší. Ant 2 vzniká pod kódovým jménem Myrmidon. Nová generace Ant by měla přinést srozumitelnější strukturu build.xml, jednoduché nasazení a správu tasků třetích stran, zjednodušení procesu vývoje tasků, umožnění tvorby ad-hoc tasků uvnitř build.xml v nějakém skriptovacím jazyce (nejpravděpodobněji javascript) a integraci template technologií jako XSLT pro tvorbu znovupoužitelných komponent (komponentový build file). Je tedy na co se těšit.

---
příště: tomcat

Našli jste v článku chybu?

13. 9. 2002 12:54

alf1024 (neregistrovaný)

...ale ta linka v clanku je stale broken

12. 9. 2002 16:44

binary_runner (neregistrovaný)

adresa na rocketmailu prestal pred nejakym casem fungovat
(tolik k tomu, jak se chova yahoo k zakaznikum odkoupene spolecnosti), funguje uz jen yahoo.com; moje chyba, mel jsem na to redakci upozornit


Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Změny v cestovních náhradách 2017

Změny v cestovních náhradách 2017

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu