Ant - prezentacja narzedzia
Transkrypt
Ant - prezentacja narzedzia
Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Plan prezentacji 1 2 3 4 Wprowadzenie Wprowadzenie do Ant Ant vs Make Budowa pliku build.xml Instalacja Ant i przykłady część I Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Przykłady część II Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie z Jetty przy pomocy Anta Bibliografia Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wprowadzenie do Ant Ant vs Make Budowa pliku build.xml Czym jest Ant? 1 Narzędzie, służące do zautomatyzowania procesu budowy oprogramowania. 2 Napisany w Javie do wykorzystania z programami napisanymi w tym języku. 3 Co najważniejsze, jest to open-source na licencji Apache Software Fundation. 4 W swej funkcjonalności niczym szwajcarski scyzoryk. Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wprowadzenie do Ant Ant vs Make Budowa pliku build.xml Historia Ant’a Wymyślony przez Jamesa Duncana Davidsona w Apache Software Fundation w 1998 r. 1 Najnowsza wersja Ant 1.6.5 z 2 czerwca 2005 http://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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wprowadzenie do Ant Ant vs Make Budowa 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 problem 3 Użycie i XML‘a i pliku build.xml Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wprowadzenie do Ant Ant vs Make Budowa 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wprowadzenie do Ant Ant vs Make Budowa pliku build.xml Czym jest <target> ? Czym jest <task> ? Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wprowadzenie do Ant Ant vs Make Budowa pliku build.xml Przykład problemu przenośności Make 1 rm -rf classes/ - zapisane w pliku Makefile – jako komenda Unixowa 2 <delete dir=”classes”/> - zapisanie w pliku build.xml 3 pliki build konwertują ścieżkę z Uniksowej do formatu określonej platformy Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Ant – przykładowa instalacja 1 rozpakować apache-ant-1.6.5-bin.zip do c:\Ant 2 set ANT HOME=c:\ant 3 set JAVA HOME=C:\Sun\AppServer\jdk 4 set PATH=%PATH%;%ANT HOME%\bin Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Ant – uruchomienie z linii poleceń 1 2 wejście do katalogu, w którym jest plik build.xml i wpisanie komendy ant wykonanie polecenia: ant -buildfile ”ścieżka do pliku build.xml” z Eclipse 1 kliknięcie prawym przyciskiem myszy na plik build.xml i wybranie Run as → Ant Build Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Uruchamianie programu z argumentami pobranymi z pliku build.xml (1) Java umożliwia pobieranie argumentów z pliku build.xml W 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Uruchamianie programu z argumentami pobranymi z pliku build.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 chcemy przesłać <start message="Wiadomosc przeslana jako argument"/> Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Co jest potrzebne? junit.jar ze strony http://www.junit.org dodanie powyższego pliku do: katalogu c:\ant\lib lub w Eclipse Window → Preferences → Ant → Runtime → Classpath → Add JARs Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Co wykorzystujemy? (1) Używamy następujących tasków: <junit>, dla którego będziemy wykorzystywać poniższe atrybuty i znaczniki: 1 2 3 4 5 6 fork=”true” powoduje uruchomienie testu na osobnej VM haltonerror=”no” powoduje nie kończenie testowania w razie wystąpienia błędu <classpath> informuje gdzie znajduje się szukana klasa testowana <formatter> ustawia jak wyniki testu mają zostać zapisane np. w postaci XML <test> definiuje pojedynczy test <batchtest> definiuje zestaw testów Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant i testy JUnit Co wykorzystujemy? (2) <junitreport> generuje raport na podstawie plików XML wcześniej utworzonych przez JUnit. Wykorzystujemy przy tym poniższe atrybuty i znaczniki: 1 2 3 todir=”katalog wynikowy” określa gdzie raport ma się znaleźć <fileset> określa gdzie znajdują się pliki XML utworzone przez JUnit <report> odpowiada za wygenerowanie raportu, posiada on atrybuty: 1 2 format=”frames” jest to format w jakim zostanie wygenerowany raport, może być ”frames” lub ”noframes” 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Instalacja Ant Przykłady podstawowe Humor Ant 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie z Jetty przy pomocy Anta Co trzeba zrobić? (1) 1 ściągnąć Subversion 1.3.0 ze strony http://subversion.tigris.org/ 2 rozpakować katalog do dowolnego miejsca na dysku np. c:\svn 3 dodać do zmiennej środowiskowej PATH ścieżkę do katalogu, w którym jest plik svn.exe (C:\svn\bin) 4 ściagnąć svnant ze strony http://subclipse.tigris.org/files/documents/906/23927/svnant1.0.0-rc1.zip Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie 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.jar jakarta-regexp-1.3.jar svnClientAdapter.jar svnant.jar svnjavahl.jar 6 użyć odpowiednich znaczników w pliku build.xml Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie z Jetty przy pomocy Anta Najważniejsze znaczniki <svn> umożliwia wywoływanie zadań związanych z korzystaniem z repozytorium. Atrybuty: username password Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie z Jetty przy pomocy Anta Komendy svn jako zagnieżdżone elementy (2) <cat> umożliwia skopiowanie zawartości pliku z 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie 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 commit Atrybuty: file dir <commit> umożliwia przesłanie zmian kopii roboczej na repozytorium Atrybuty: file dir Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie 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 Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Wywołania warunkowe w Ant Korzystanie z repozytorium za pomocą Ant Korzystanie 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.jar classpathref - informuje, gdzie znajdują się klasy potrzebne do uruchomienia fork=”true” - wykonanie klasy jest w osobnej VM dir=”${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.jar failonerror=”false” - w przypadku błędu kontynuuje Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia Wprowadzenie Instalacja Ant i przykłady część I Przykłady część II Bibliografia Jesse Tilly, Eric Burke Ant: The Definitive Guide O’Reilly http://ant.apache.org/manual/index.html Apache Ant 1.6.5 Manual The Apache Software Foundation http://wiki.apache.org/ant/AntTutorialWritingTasks AntTutorialWritingTasks The Apache Software Foundation http://subclipse.tigris.org/svn/subclipse/branches/svnant/ Svn Task CollabNet Dawid Dorosz, Michał Ostrowiecki, Andrzej Perużyński Ant - prezentacja narzędzia