Technologie Biznesu Elektronicznegosens.e-informatyka.pl/wp-content/uploads/TBE/ant2103.pdf · Ant...

33
Wprowadzenie Instalacja Ant i przyklady część I Przyklady część II Bibliografia Ant - prezentacja narzędzia Dawid Dorosz Michal Ostrowiecki Andrzej Perużyński Technologie Biznesu Elektronicznego 21 marca 2006 Dawid Dorosz, Michal Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

Transcript of Technologie Biznesu Elektronicznegosens.e-informatyka.pl/wp-content/uploads/TBE/ant2103.pdf · Ant...

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Ant - prezentacja narzędzia

Dawid Dorosz Michał Ostrowiecki Andrzej Perużyński

Technologie Biznesu Elektronicznego

21 marca 2006

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Plan prezentacji

1 WprowadzenieWprowadzenie do AntAnt vs MakeBudowa pliku build.xml

2 Instalacja Ant i przykłady część IInstalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

3 Przykłady część IIWywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

4 Bibliografia

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wprowadzenie do AntAnt vs MakeBudowa pliku build.xml

Czym jest Ant?

1 Narzędzie, służące do zautomatyzowania procesu budowyoprogramowania.

2 Napisany w Javie do wykorzystania z programami napisanymiw tym języku.

3 Co najważniejsze, jest to open-source na licencji ApacheSoftware Fundation.

4 W swej funkcjonalności niczym szwajcarski scyzoryk.

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wprowadzenie do AntAnt vs MakeBudowa pliku build.xml

Historia Ant’a

Wymyślony przez Jamesa Duncana Davidsona w Apache SoftwareFundation w 1998 r.1 Najnowsza wersja Ant 1.6.5 z 2 czerwca 2005http://ant.apache.org/

2 Używana w projekcie TBE: Ant 1.6.5

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wprowadzenie do AntAnt vs MakeBudowa pliku build.xml

Co różni Ant‘a od Make?

1 W pliku Makefile czynności określone jako komendy powłoki –zależne od platformy

2 Ant rozwiązuje ten problem3 Użycie i XML‘a i pliku build.xml

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wprowadzenie do AntAnt vs MakeBudowa pliku build.xml

Schemat pliku build.xml

<project name="project_name" basedir="." default="default"><property name="src" value="./src" /><target name="default"><task1 param1="value" /><task2><type param="value" /></task2></target>

</project>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wprowadzenie do AntAnt vs MakeBudowa pliku build.xml

Czym jest <target> ?

Czym jest <task> ?

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wprowadzenie do AntAnt vs MakeBudowa pliku build.xml

Przykład problemu przenośności Make

1 rm -rf classes/ - zapisane w pliku Makefile – jako komendaUnixowa

2 <delete dir=”classes”/> - zapisanie w pliku build.xml3 pliki build konwertują ścieżkę z Uniksowej do formatuokreślonej platformy

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Ant

wymagania - JDK 1.2 lub nowsza

download - http://ant.apache.org/

najnowsza wersja - Ant 1.6.5

używana wersja - Ant 1.6.5

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Ant – przykładowa instalacja

1 rozpakować apache-ant-1.6.5-bin.zip do c:\Ant2 set ANT HOME=c:\ant3 set JAVA HOME=C:\Sun\AppServer\jdk4 set PATH=%PATH%;%ANT HOME%\bin

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Ant – uruchomienie

z linii poleceń1 wejście do katalogu, w którym jest plik build.xml i wpisaniekomendy ant

2 wykonanie polecenia: ant -buildfile ”ścieżka do pliku build.xml”

z Eclipse1 kliknięcie prawym przyciskiem myszy na plik build.xmli wybranie Run as → Ant Build

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Tworzenie katalogów i kopiowanie plików

Najważniejsze elementy pliku build.xml

<deltree dir="${build}"/>

<mkdir dir="${build}/${src}" />

<copy todir="${build}/${src}"><fileset dir="${src}"><include name="*.xml"/><exclude name="index.xml"/></fileset></copy>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Kompilacja oraz uruchomienie programu

Najważniejsze elementy pliku build.xml

<javac srcdir="${src}" destdir="${build}"includes="Start.java"/>

<jar destfile="uruchom.jar" basedir="${build}"/>

<java classname="src.Start" classpath="uruchom.jar" />

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Uruchamianie programu z argumentami pobranymi z plikubuild.xml (1)

Java umożliwia pobieranie argumentów z pliku build.xmlW tym celu należy:

import org.apache.tools.ant.Task;

extends Task

posiadać metodę np. public void setMessage(String msg)

posiadać metodę public void execute()

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Uruchamianie programu z argumentami pobranymi z plikubuild.xml (2)

Aby uruchomić napisany przez nas program należy:

zdefiniować własny task

<taskdef name="start" classname="src.Start"classpath="uruchom.jar"/>

wywołać wcześniej utwożony task z atrybutem, który chcemyprzesłać

<start message="Wiadomosc przeslana jako argument"/>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Wykonywanie komendy systemowej

Ant umożliwia wykonywanie komend systemowych.Można to wykorzystać np. do odtwarzania plików mp3.Oto przykład:

<exec executable="${src}wmplayer.exe" spawn="true"><arg value="${muzyka}\Disco polo - Majteczki W Kropeczki.mp3"/></exec>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Co jest potrzebne?

junit.jar ze strony http://www.junit.orgdodanie powyższego pliku do:katalogu c:\ant\lib

lubw Eclipse Window → Preferences → Ant → Runtime →Classpath → Add JARs

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Co wykorzystujemy? (1)

Używamy następujących tasków:<junit>, dla którego będziemy wykorzystywać poniższeatrybuty i znaczniki:1 fork=”true” powoduje uruchomienie testu na osobnej VM2 haltonerror=”no” powoduje nie kończenie testowania w raziewystąpienia błędu

3 <classpath> informuje gdzie znajduje się szukana klasatestowana

4 <formatter> ustawia jak wyniki testu mają zostać zapisanenp. w postaci XML

5 <test> definiuje pojedynczy test6 <batchtest> definiuje zestaw testów

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Co wykorzystujemy? (2)

<junitreport> generuje raport na podstawie plików XMLwcześniej utworzonych przez JUnit.Wykorzystujemy przy tym poniższe atrybuty i znaczniki:1 todir=”katalog wynikowy” określa gdzie raport ma się znaleźć2 <fileset> określa gdzie znajdują się pliki XML utworzone przezJUnit

3 <report> odpowiada za wygenerowanie raportu, posiada onatrybuty:1 format=”frames” jest to format w jakim zostaniewygenerowany raport, może być ”frames” lub ”noframes”

2 todir=”katalog raporty” określa katalog, w którym ma byćumieszczony raport

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Przykład wykorzystujący pojedynczo uruchamiane testy

<junit fork="yes" haltonfailure="no"><classpath refid="classpath.test"/><formatter type="xml"/><test fork="yes" name="MatematykaTest" todir="${build}/${junit.out.dir.xml}"/><test fork="yes" name="NapisyTest" todir="${build}/${junit.out.dir.xml}"/><junit>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Przykład wykorzystujący zbiorowo uruchamiane testy

<junit fork="yes" haltonfailure="no"><classpath refid="classpath.test"/><formatter type="xml"/><batchtest fork="yes" todir="${build}/${junit.out.dir.xml}"><fileset dir="src" includes="**/*Test.java"/></batchtest>

</junit>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Instalacja AntPrzykłady podstawoweHumorAnt i testy JUnit

Generowanie raportu

<junitreport todir="${build}/${junit.out.dir.html}"><fileset dir="${build}/${junit.out.dir.xml}"><include name="*.xml"/></fileset><report format="frames" todir="${build}/${junit.out.dir.html}"/></junitreport>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Struktury kontrolne if..then..else (1)

Taką strukturę chcemy uzyskać w pliku build.xml

if( condition ) {if( inner-condition ) {A

} else {B

}} else {C

}

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Struktury kontrolne if..then..else (2)

Najważniejsze elementy pliku build.xml

<target name="nested-if"><condition property="condition"><available file="fileone"/></condition><antcall target="then"/><antcall target="else"/></target>

<target name="then" if="condition">

<target name="else" unless="condition">

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Co trzeba zrobić? (1)

1 ściągnąć Subversion 1.3.0 ze stronyhttp://subversion.tigris.org/

2 rozpakować katalog do dowolnego miejsca na dysku np. c:\svn3 dodać do zmiennej środowiskowej PATH ścieżkę do katalogu,w którym jest plik svn.exe (C:\svn\bin)

4 ściagnąć svnant ze stronyhttp://subclipse.tigris.org/files/documents/906/23927/svnant-1.0.0-rc1.zip

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Co trzeba zrobić? (2)

5 do katalogu lib naszego projektu skopiować zawartośćkatalogu lib z svnant czyli:commons-lang-2.0.jarjakarta-regexp-1.3.jarsvnClientAdapter.jarsvnant.jarsvnjavahl.jar

6 użyć odpowiednich znaczników w pliku build.xml

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Najważniejsze znaczniki

<svn> umożliwia wywoływanie zadań związanychz korzystaniem z repozytorium.Atrybuty:usernamepassword

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Komendy svn jako zagnieżdżone elementy (1)

<checkout> umożliwia ściągnięcie kopii z repozytorium.Atrybuty:url np.:”http://judy.ci.pwr.wroc.pl/project2006/p47/exercises”destPath - katalog, do którego kopiujemy zawartość

<mkdir> umożliwia stworzenie katalogu na repozytorium.Atrybuty:url np.: ”http://judy.ci.pwr.wroc.pl/project2006/p47/test”message - wiadomość

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Komendy svn jako zagnieżdżone elementy (2)

<cat> umożliwia skopiowanie zawartości plikuz repozytorium.Atrybuty:url np.:”http://judy.ci.pwr.wroc.pl/project2006/p47/exercises/file.txt”destFile - plik, do którego kopiujemy zawartość

<delete> umożliwia skasowanie katalogu na repozytorium.Atrybuty:url np.: ”http://judy.ci.pwr.wroc.pl/project2006/p47/test”message - wiadomość

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Komendy svn jako zagnieżdżone elementy (3)

<add> umożliwia dodanie pliku lub katalogu do repozytorium.Pliki na repozytorium zobaczymy po wywołaniu commitAtrybuty:filedir

<commit> umożliwia przesłanie zmian kopii roboczej narepozytoriumAtrybuty:filedir

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Ściągnięcie najnowszego kodu z repozytorium WordPress

Plik build.xml:

<project name="WordPress" default="update" basedir="."><path id="project.classpath"><fileset dir="lib"><include name="**/*.jar"/></fileset>

</path><taskdef resource="svntask.properties" classpathref="project.classpath"/><target name="update" description="Update from Repository" ><svn><checkout url="http://svn.automattic.com/wordpress/trunk/"destPath="src" />

</svn></target></project>

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Wywołania warunkowe w AntKorzystanie z repozytorium za pomocą AntKorzystanie z Jetty przy pomocy Anta

Uruchomienie i zakończenie Jetty

1 Uruchomienie Jetty:<java jar=”${lib.dir}start.jar” classpathref=”libs.classpath”fork=”true” dir=”${build.dir}”>Atrybuty:${lib.dir}start.jar - ścieżka do pliku start.jarclasspathref - informuje, gdzie znajdują się klasy potrzebne douruchomieniafork=”true” - wykonanie klasy jest w osobnej VMdir=”${build.dir}” - katalog, w którym zostanie wywołana VM

2 Zakończenie Jetty:<java jar=”${lib.dir}stop.jar” fork=”true”failonerror=”false”/>Atrybuty:${lib.dir}stop.jar - ścieżka do pliku stop.jarfailonerror=”false” - w przypadku błędu kontynuuje

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia

WprowadzenieInstalacja Ant i przykłady część I

Przykłady część IIBibliografia

Jesse Tilly, Eric BurkeAnt: The Definitive GuideO’Reilly

http://ant.apache.org/manual/index.htmlApache Ant 1.6.5 ManualThe Apache Software Foundation

http://wiki.apache.org/ant/AntTutorialWritingTasksAntTutorialWritingTasksThe Apache Software Foundation

http://subclipse.tigris.org/svn/subclipse/branches/svnant/Svn TaskCollabNet

Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia