Ant
Z Wikipedii
Apache Ant | |
Producent: | Apache (fundacja oprogramowania) |
Najnowsze wydanie: | 1.6.3beta1 - 31 marca 2005 |
Ostatnie stabilne wydanie: | 1.6.2 |
Start projektu: | 19 lipca 2000 |
Systemy: | GNU/Linux, Windows, Mac OS, BeOS |
Rodzaj: | Generacja kodu |
Licencja: | GPL |
Adres WWW: | ant.apache.org |
Ant, a dokładnie Apache Ant to narzędzie służące do zautomatyzowania procesu budowy oprogramowania. Podobne do programu Make ale napisane w języku Java do wykorzystania przede wszystkim z programami napisanymi w tym języku.
Od razu zauważalną różnicą pomiędzy Ant i Make jest to że Ant używa plików w formacie XML do opisu procesu budowy i jego zależności, gdzie Make ma własny format Makefile. Domyślnie plik XML nazywa się build.xml.
Ant jest jednym z projektów Apache.
Spis treści |
[edytuj] Przykładowy plik build.xml
Poniżej znajduje się przykładowy plik build.xml dla prostej aplikacji "Hello, world" napisanej w języku Java. Definiuje trzy targets – clean, compile, jar, każdy z nich ma dołączony opis. Target jar ma opisany cel compile jako zależność. To mówi programowi Ant że zanim rozpocznie target jar musi ukończyć target compile.
Każdy target to czynności jakie musi wykonać Ant żeby zbudować dany target. Np. do zbudowania target compile Ant musi najpierw stworzyć folder o nazwie classes (Ant stworzy go jeżeli jeszcze nie istnieje), po czym odwoła się do kompilatora Javy.
<?xml version="1.0"?> <project name="Hello" default="compile"> <target name="clean" description="remove intermediate files"> <delete dir="classes"/> </target> <target name="compile" description="compile the Java source code to class files"> <mkdir dir="classes"/> <javac srcdir="." destdir="classes"/> </target> <target name="jar" depends="compile" description="create a Jar file for the application"> <jar destfile="hello.jar"> <fileset dir="classes" includes="**/*.class"/> <manifest> <attribute name="Main-Class" value="HelloProgram"/> </manifest> </jar> </target> </project>
[edytuj] Przenośność
Jednym z głównych celów Ant było rozwiązanie problemu przenośności Make. W pliku Makefile czynności potrzebne do stworzenia target są określone jako komendy powłoki, które są zależne od platformy. Ant rozwiązuje ten problem dostarczając dużą ilość wbudowanych funkcji, co gwarantuje identyczne zachowanie na wszystkich platformach.
Np. w w/w pliku build.xml target clean kasuje rekursywnie folder classes. W pliku Makefile byłoby to zapisane w następujący sposób:
rm -rf classes/
rm to Uniksowa komenda, która nie będzie dostępna w środowisku nie-Unixowym takim jak Windows. W pilku build.xml wykorzystywanym przez Ant ta sama operacja będzie wykonana za pomocą wbudowanej komendy:
<delete dir="classes"/>
Różnica pomiędzy platformami wynika ze sposobu przedstawiania ścieżki dostępu. Unix używa forward slash (/) do określenia ścieżki z kolei Windows backslash (\). Pliki build programu Ant używają Uniksowej konwencji, po czym konwertują ścieżkę do formatu określonej platformy.
[edytuj] Historia
Ant został wymyślony przez Jamesa Duncana Davidsona podczas prac nad otworzeniem źródeł produktu firmy Sun Microsystems, który później został nazwany Jakarta Tomcat. Przy zamkniętych źródłach nie można było używać Make do zbudowania go na Solarisie dlatego aby umożliwić kompilację na dowolnej platformie powstał Ant, korzystający z XML-owych plików build. Od samego początku narzędzie wzbudzało większe zainteresowanie i aprobatę niż projekt Tomcat, do którego zostało stworzone, co sprawiło, że programiści oczekują pliku build.xml w każdym nowym projekcie napisanym w Javie.