Apache Ant

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Disambig.svg Na tę stronę wskazuje przekierowanie z „ant”. Zobacz też: inne znaczenia tego słowa.
Apache Ant
Generacja kodu
Apache-Ant-logo.svg
Logo programu
Producent Apache Software Foundation
System operacyjny GNU/Linux, Windows, Mac OS, BeOS
Pierwsze wydanie 19 lipca 2000
Aktualna wersja stabilna 1.9.2; / 12 lipca 2013
Licencja Apache License
http://ant.apache.org

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 Software Foundation.

Przykładowy plik build.xml[edytuj | edytuj kod]

Poniżej znajduje się przykładowy plik build.xml dla prostej aplikacji "Hello, world" napisanej w języku Java. Definiuje trzy targetsclean, 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>

Przenośność[edytuj | edytuj kod]

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 ww. 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-uniksowym 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.

Historia[edytuj | edytuj kod]

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.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]