Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

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

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.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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:

davame_internetu_obsah
       
  • 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

Školení: Linux – Firemní server

Na třídenním školení se naučíte nainstalovat a spravovat kompletní linuxový server do Vaší firmy se všemi základními službami, které potřebujete pro provoz Vaší sítě, firemních emailů a webových stránek.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,41

Přehled názorů

bez titulku
Gufno 12. 9. 2002 07:17
Nový
└ 
Re: LSB
Laama 12. 9. 2002 09:00
Nový
preklep
alf1024 12. 9. 2002 15:43
Nový
mail
binary_runner 12. 9. 2002 16:44
Nový
└ 
Re: mail
alf1024 13. 9. 2002 12:54
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem