Ant aneb Ferda Mravenec, práce všeho druhu



Podobné dokumenty
ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

12. Dokumentace a distribuce aplikací. speciálních dokumentačních komentářích vpisovaných před

Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Správa projektů a testování

JAVA. Nástroje v JDK

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Obsah. Předmluva Začínáme: překlad, spuštění a ladění 27

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Semin aˇr Java N astroje Radek Koˇc ı Fakulta informaˇcn ıch technologi ı VUT Bˇrezen 2012 Radek Koˇc ı Semin aˇr Java n astroje 1/ 42

JAVA. Nástroje v JDK

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Změna vlastností kódem

Architektura aplikace

Obchodní podmínky technické podpory programu ESRI Developer Network (EDN)

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

JAVA V Anotace Java, zimní semestr ,2014 1

Ing. Petr Ferschmann SoftEU s.r.o. Ing. Jindřich Vimr HSF s.r.o.

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

KIV/PIA 2013 Jan Tichava

Obrázek 6.14: Prohlížec nápovedy

Úvod do Web Services

Návod uživatele. Obchodní platformy BOSSAFX Multiterminál. Dom Maklerski Banku Ochrony Środowiska S.A.

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

JAVA V Anotace Java, zimní semestr ,2015 1

Práce se soubory opakování

JAVA V Anotace Java, zimní semestr ,2016 1

3. Základy programovacího jazyka Java

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky UPS. FTP Klient. A05463 fboranek@atlas.

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Technologie Java. Jaroslav Žáček

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

CPAN, tvorba a šíření softwaru v jazyce Perl. Petr Pajas Hejnice 2010

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Příručka aplikace KMix. Gaurav Chaturvedi Vývojář: Christian Esken Vývojář: Helio Chissini de Castro Vývojář: Brian Hanson

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

1 Nástroje pro správu verzí. 1.1 Pojmy:

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

RMI Remote Method Invocation

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

Program. Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

POWERSHELL. Desired State Configuration (DSC) Lukáš Brázda MCT, MCSA, MCSE

Komunikace eorders. aegis. aegis.cz. Konference Common 2009 Malá Fatra. Evžen Kučera

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

Vývoj aplikací řízený testy. Miroslav Beneš

Příručka aplikace Shisen-Sho. Dirk Doerflinger Eugene Trounev Frederik Schwarzer Kontrolor: Frerich Raabe

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, Šablonovací systém htmltmpl

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

BI-AWD. Administrace Webového a Databázového serveru Instalace webového serveru Apache httpd

Semináˇr Java X J2EE Semináˇr Java X p.1/23

11. Přehled prog. jazyků

Tipy technické podpory 2015

Algoritmizace a programování

Java a J2EE. Cleverlance. Lukáš Marek lukas.marek@cleverlance.com

Obsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací

KIV/PIA Semestrální práce

Úvod do programování v jazyce Java

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

QuarkXPress soubor ReadMe

Základy operačních systémů

O2 Managed Backup & Restore Power

Tvorba informačních systémů

ESET Mobile Antivirus

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Softwarové komponenty a Internet

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

9. Archivace a verzování svn

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

QuarkXPress soubor ReadMe

IBM TRIRIGA Application Platform Verze 3 Vydání 4.2. Příručka instalace a implementace

Spring framework 2.0. Roman Pichlík CZJUG

Tvorba informačních systémů

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Skriptovací jazyky. Obsah

Základní příkazy UNIXu (Linuxu)

RMI - Distribuované objekty v Javě

Computer Press Brno 2003

Gradle.

}w!"#$%&'()+,-./012345<ya

x86 assembler and inline assembler in GCC

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

BankKlient. FAQs. verze 9.50

JAVA Unit testing Java, zimní semestr

PREPROCESOR POKRAČOVÁNÍ

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Reflexe RTTI Runtime Type Identification

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Technologie JavaBeans

Správa a sledování SOA systémů v Oracle SOA Suite

Michal Podzimek

Revit link. Propojení mezi Scia Engineer a Revit structure

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Transkript:

Ant aneb Ferda Mravenec, práce všeho druhu Nástroj na sestavování projektů (aplikací) podobný programu make, který se používá u programů v C či C++. Program Ant je volně k dispozici (tzv. The Apache Software License) na http://jakarta.apache.org/. Program je napsaný v jazyce Java a používá se v mnoha projektech realizovaných v Javě (např. tomcat, JDOM, jboss, ). V porovnání s programem make má Ant následující výhody: - je nezávislý na platformě (pokud se nevyvolávají příkazy operačního systému, což obvykle není potřeba na rozdíl od programu make), - má přehlednější syntaxi zapsanou v souboru s XML formátem, - při sestavování aplikací v Javě je rychlejší než make, - obsahuje specifické konstrukce používané pro sestavování aplikací v Javě (podpora jar souborů, podpora EJB, generování dokumentace javadoc,...) Ant se obvykle spouští z příkazové řádky, je možné ho i integrovat do mnoha vývojových nástrojů, např.: JBuilder Visual Age NetBeans, Forte for Java JEdit Jak Ant pracuje? Každý projekt má vlastní sestavovací (build) soubor, pro který se obvykle používá jméno build.xml, neboť tento název je defaultní a tudíž se nemusí specifikovat na příkazové řádce (parametr -buildfile soubor). Každý sestavovací soubor obsahuje jednotlivé cíle (targets), které odpovídají jednotlivým aktivitám při sestavování projektu např. překlad či vytvoření distribuce. Cíl, který se má realizovat se specifikuje na příkazové řádce pokud se cíl neuvede, provede se defaultní cíl zapsaný v sestavovacím souboru. U každého cíle může být specifikováno, na kterých cílech je závislý (např. vytvoření distribuce bude závislé na překladu). Každý cíl se provádí maximálně jednou za jedno vyvolání příkazu Ant. V případě, že vznikne chyba, přeruší Ant svoji činnost a nepokračuje s dalšími úlohami a cíli. Každý cíl se skládá z jednotlivých úloh, které se provádějí sekvenčně za sebou. Některé úlohy se provádějí pouze v případě, že je to potřeba např. zdrojový soubor se překládá pouze v případě, že je novější než odpovídající soubor.class Jednoduchý příklad V tomto příkladu předpokládáme následující adresářovou strukturu: kořenový adresář projektu soubor build.xml a obvykle soubor README, - adresář src v tomto adresáři a podadresářích (dle balíků, package) jsou zdrojové texty jednotlivých tříd, - adresář lib v tomto adresáři jsou knihovny.jar používané v projektu, - adresář classes přeložené třídy (soubory.class), - adresář dist do tohoto adresáře se vytváří distribuce (obvykle.jar soubor), - adresář doc adresář s dokumentací, obvykle obsahuje podadresář api s dokumentací vygenerované pomoci javadoc,

Ukázka souboru build.xml následuje: <project name="cestovnikancelar" default="dist" basedir="."> <!-- set global properties for this build --> <property name="src" value="src"/> <property name="build" value="classes"/> <property name="dist" value="dist"/> <target name="init" description= Create the build directory structure > <mkdir dir="${build}"/> <target name="compile" depends="init" description= Compile the java code from ${src} into ${build} > <javac srcdir="${src}" destdir="${build}"/> <target name="dist" depends="compile" description= Create the distribution jar file > <mkdir dir="${dist}/lib"/> <jar jarfile="${dist}/lib/cestovnikancelar.jar" > <fileset dir="${build}"/> </jar> <target name="run" depends="dist" description= Run CestovniKancelar application > <java classpath="${dist}/lib/cestovnikancelar.jar" classname="cestovnikancelar" fork="yes"/> <target name="clean" description= Delete the ${build} and ${dist} directory trees> <delete dir="${build}"/> <delete dir="${dist}"/> </project> Popis částí souboru build.xml V sestavovacím souboru je vždy popsán jeden projekt pomocí tagu <project>. Tento tag obvykle obsahuje tyto parametry: name jméno projektu default defaultní cíl, tj. ten ke kterému se Ant snaží dojít pokud neuvedete při spouštění jiný. basedir základní adresář, odkud vycházejí všechny cesty používané při popisu sestavování.

Uvnitř projektu jsou definovány globální parametry projektu (tag <property>) a jednotlivé cíle (tag <target>). U globálního parametru se vždy definuje jméno (parametr name) a hodnota (parametr value). Počet a typ parametrů u jednotlivých cílů závisí na typu cíle. Parametry jednotlivých cílů jsou popsány v dokumentaci. Používání programu ant Ant se spouští z dávkového souboru příkazem ant. Obvykle se spouští v adresáři, ve kterém je sestavovací soubor a jako parametr se zadává název cíle, který se má provést (vždy se provedou i všechny cíle, na kterých je tento cíl závislý). Lze zadat i různé parametry úplný seznam lze získat po zadání příkazu ant help. Následující výstup je získán po zadání příkazu ant v situaci, kdy se změnil jeden zdrojový soubor. Ve výstupu jsou vidět jak všechny realizované cíle, tak všechny realizované úlohy v rámci jednotlivých cílů (vypisují se pouze ty úlohy, které provedou nějakou akci v následujícím výpisu není např. uvedena úloha mkdir v rámci cíle init, neboť příslušný adresář již existuje). Buildfile: build.xml init: compile: [javac] Compiling 1 source file to C:\cestovka2\build dist: [jar] Building jar: C:\cestovka2\dist\lib\CestovniKancelar.jar BUILD SUCCESSFUL Total time: 14 seconds Spuštění programu ant s parametrem projecthelp vypíše jednotlivé úlohy definované v buildfile. Následuje ukázka výstupu: Buildfile: build.xml Default target: compile Compile the java code from ${src} into ${build} Main targets: clean compile init dist run Delete the ${build} and ${dist} directory trees Compile the java code from ${src} into ${build} Create the build directory structure Create the distribution jar file Run CestovniKancelar application

Další časté cíle Vedle cílů z ukázkového sestavovacího souboru se často objevují i následující cíle: generování dokumentace javadoc: <property name="docdir" value="doc"/> <target name="javadoc" depends="compile" description="generate javadoc from all.java files"> <delete dir="${docdir}/api"/> <mkdir dir="${docdir}/api"/> <javadoc sourcepath="${src}" destdir="${docdir}/api" classpath="${build}" sourcefiles="${src}/*.java"/> Přehled úloh programu ant Následující přehled obsahuje většinu úloh, které jsou k dispozici v základní instalaci programu ant. Ant AntStructure Apply Available Chmod Condition Copy CVS Delete Ear Echo Exec Fail GenKey Get Gzip, Gunzip Jar Java Javac Javadoc Mail Mkdir Move Parallel provedení cíle v jiném build souboru, používá se v případě, že existují relativně samostatné subprojekty vygeneruje DTD soubor, který obsahuje všechny známé úlohy spustí příkaz z operačního systému, nastaví specifikovanou proměnnou (property) na true, pokud je dostupný zadaný soubor, či zadaná třída či zadaný zdroj JVM mění přístupová práva k souboru (v Unixu) nastaví proměnnou na základě podmínky, je to zobecnění úlohy Available kopíruje soubory či adresáře spolupracuje se systémem pro správu verzí (CVS) vymaže jednotlivé soubory či celé adresáře včetně podadresářů vytváří tzv. Enterprise application archive (ear), obsahující.jar a.war soubory vypíše text na standardní výstup či do souboru spustí příkaz operačního systému ukončí sestavování s chybovou hláškou generuje klíč pro digitální podpis zkopíruje soubor ze zadaného URL komprimování, dekomprimování souboru vytvoření archivu.jar spustí aplikaci v Javě přeloží zdrojový soubor programu v Javě do.class vygeneruje dokumentaci v HTML formátu ze zdrojových souborů odešle zprávu elektronickou poštou vytvoří adresář(e), přesune/přejmenuje soubor(y), umožňuje využít více vláken pro spouštění úloh, používá se např. pro testování serverů (server je v jednom vlákně, test se spustí ve druhém

Patch Pathconvert Property Record Replace Rmic SignJar Sleep SQL Style Tar Taskdef Touch Tstamp Unjar Untar Unwar Unzip Uptodate War Zip vlákně) umožňuje aplikovat diff soubory na zdrojové texty upravuje jména souborů do formátu vhodného pro aktuální platformu nastavuje vnitřní proměnné, které lze použít v dalších úlohách, proměnné lze též načíst ze souboru zapisuje výstup (log) z programu ant do souboru zamění výskyty řetězce za jiný v zadaném souboru vyvolá rmic překladač pro vytvoření stubů a skeletonů pro třídy RMI doplní digitální podpis k jar souboru, čeká určitou dobu vykonává SQL příkazy vůči databázi aplikuje XSLT předpisy na XML soubory a vytvoří příslušné výstupy vytváření archivů tar umožňuje začlenit vlastní úlohy (specifikuje se jméno třídy, která se má vykonat) vytvoří prázdný soubor pokud neexistuje, nastaví čas modifikace souboru na aktuální (obdoba příkazu touch v unixu) vytvoří vnitřní proměnné programu ant, které obsahují údaje o aktuálním čase, rozbalení archivu jar rozbalení archivu tar rozbalení archivu war rozbaluje ZIP archivy nastavuje vnitřní proměnné programu ant na základě porovnání aktuálnosti dvou souborů vytváří Web Application Archive z jednotlivých souborů vytváří ZIP archivy Součástí distribuce programu ant je též archiv tzv. volitelných úloh, z nichž některé jsou uvedeny v následujícím přehledu. Pro spuštění některých z nich je potřeba doinstalovat ještě dodatečné programy (např. junit.jar pro testy JUnit). Cab.EJB úlohy.net úlohy FTP JDepend Jlink JUnit JUnitReport MimeMail PropertyFile Rpm Sound Telnet XmlValidate vytváří archivy CAB používané firmou Microsoft úlohy pro vytváření Enterprise Java Beans podpora C# a dalších.net technologii umožňuje pracovat se soubory na ftp serveru spouští nástroj JDepend nad zdrojovými programy pro měření kvality návrhu a závislostí mezi balíky, umožňuje vytvářet archivy ze souborů v různých archivech, spouští testy vytvořené pomocí JUnit generuje HTML výstup z testů pomoci JUnit umožňuje odesílat el. poštou soubory umožňuje upravovat parametrické soubory Javy (property files) vytváří.rpm soubory používané v distribucích v některých verzích Linuxu podpora pro přehrávání zvukových souborů podpora protokolu telnet (přihlašování na vzdálených počítačích), kontroluje, zda jsmou XML soubory v pořádku (odpovídají.xsl souborům) či aspoň správně naformátované