Apache Ant

język programowania

Apache Ant – 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.

Apache Ant
Logo Apache Ant
Logo programu
ilustracja
Autor Apache Software Foundation
Pierwsze wydanie 19 lipca 2000
Aktualna wersja stabilna 1.10.14
(21 sierpnia 2023) [±]
System operacyjny GNU/Linux, Windows, Mac OS, BeOS
Rodzaj generacja kodu
Licencja Apache License
Strona internetowa

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

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

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żą liczba 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

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. Początkowo Ant był częścią bazy kodu projektu Tomcat, lecz od 2000 roku został przeniesiony do oddzielnego repozytorium o stał się samodzielnym projektem[1]. Od samego początku narzędzie wzbudzało większe zainteresowanie i aprobatę niż projekt Tomcat.

Zobacz też edytuj

Przypisy edytuj

Linki zewnętrzne edytuj