technologie biznesu elektronicznegosens.e-informatyka.pl/wp-content/uploads/tbe/ant2103.pdf · ant...
TRANSCRIPT
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