Apache Ant

Apache Ant
Logo Apache Ant
Logo programu
ilustracja
AutorApache Software Foundation
Pierwsze wydanie19 lipca 2000
Aktualna wersja stabilna1.10.6 / 8 maja 2019; ponad 3 lata temu[1]
System operacyjnyGNU/Linux, Windows, Mac OS, BeOS
RodzajGeneracja kodu
LicencjaApache License
Strona internetowa

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

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ść

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

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[2]. Od samego początku narzędzie wzbudzało większe zainteresowanie i aprobatę niż projekt Tomcat.

Zobacz też

  • Apache Maven

Przypisy

  1. Apache Ant™ Project News. apache.org, 2019-05-08. [dostęp 2019-06-17]. (ang.).
  2. The Apache Ant project: Frequently Asked Questions

Linki zewnętrzne

Media użyte na tej stronie

Redirect arrow without text.svg
Redirect arrow, to be used in redirected articles in Wikipedias written from left to right. Without text.
Apache-Ant-logo.svg
Autor: The Apache Ant Project Team, designed by Nick King, Licencja: Apache License 2.0
To jest logo: Apache Ant – język programowania
Xml.gif
Przykładowy plik XML