Samouczek Apache ANT: Co to jest narzędzie do budowania Ant? Przykład

⚡ Inteligentne podsumowanie

Apache ANT to Java Narzędzie do kompilacji oparte na XML, które automatyzuje kompilację, testowanie, pakowanie i wdrażanie za pomocą pliku kompilacji XML. W tym artykule opisano narzędzie, traces swoją historię, obejmuje Windows instalacja, wyjaśnia strukturę projektu i porównuje ją z Maven i Gradle.

  • 🔨 Definicja podstawowa: Ant to skrót od Another Neat Tool, czyli narzędzia, które konwertuje kod źródłowy na aplikację wykonywalną z poziomu wiersza poleceń.
  • 📄 Plik kompilacji: Każda instrukcja znajduje się w pliku XML, konwencjonalnie nazywanym build.xml, który nie wymaga żadnego dodatkowego języka programowania.
  • 🧱 Struktura trójwęzłowa: Plik kompilacji zawsze zagnieżdża zadania wewnątrz celów, a cele wewnątrz pojedynczego elementu projektu.
  • 🔗 Kontrola zależności: Atrybut dependencji porządkuje cele, dlatego kompilacja zawsze jest uruchamiana przed plikiem jar i przed wdrożeniem.
  • ⚙️ Konfiguracja środowiska: Do instalacji wymagany jest pakiet JDK, zmienna ANT_HOME i folder bin programu Ant dodany do ścieżki systemowej.
  • 🆚 Porównanie narzędzi: Ant oferuje swobodę proceduralną, Maven wymusza konwencję dzięki zarządzaniu zależnościami, a Gradle łączy oba ze skryptowaną kompilacją.
  • 🌍 Korzyść z przenośności: Kompilacja działa identycznie na Windows i Linux, gdziekolwiek Java Maszyna wirtualna jest dostępna.

Samouczek Apache ANT

Co to jest narzędzie do tworzenia?

Narzędzie do kompilacji to narzędzie programistyczne używane do tworzenia nowej wersji programu. Automatyzuje tworzenie aplikacji wykonywalnej z dowolnego kodu źródłowego.

Bez narzędzia do kompilacji programista musiałby ręcznie kompilować każdy plik źródłowy, kopiować zasoby, uruchamiać zestaw testów i pakować wynik po każdej zmianie. Narzędzie do kompilacji rejestruje te kroki raz i powtarza je identycznie na każdej maszynie.

Co to jest Apache Ant?

Mrówka Apache jest Java-oparte na narzędziu wiersza poleceń do budowania Java aplikacji z pełną przenośnością pure Java Pozwala programistom na wdrożenie zwinnych zasad programowania i programowania sterowanego testami (TDD), aby zautomatyzować powtarzalne zadania programistyczne, takie jak generowanie dokumentacji. Ant to akronim od Another Neat Tool (inne, fajne narzędzie).

Mrówka Apache

Jak pokazuje diagram, Ant odczytuje plik kompilacji, ustala kolejność celów w nim zawartych, a następnie uruchamia poszczególne zadania, które kompilują, kopiują, testują i pakują aplikację.

Do czego służy narzędzie Apache Ant Build?

Oto najważniejsze korzyści wynikające z używania narzędzia do kompilacji:

  • Narzędzie do kompilacji umożliwia automatyzację określonych, powtarzalnych zadań, takich jak kompilowanie kodu źródłowego, uruchamianie testów oprogramowania i tworzenie plików do wdrażania oprogramowania.
  • Narzędzia do budowania działają przeważnie bez graficznego interfejsu użytkownika.
  • Pomaga przekonwertować kod źródłowy na kod wykonywalny.
  • Oferuje opcję ponownej kompilacji pliku tylko wtedy, gdy jest to konieczne.
  • Umożliwia kompilowanie dużej liczby plików w stosunkowo krótkim czasie.
  • Dwa bardzo popularne narzędzia do kompilacji używane przez Java programiści są Apache Maven i Mrówka.

Historia Apache Ant

Teraz poznamy historię narzędzia do kompilacji Apache Ant.

Oto ważne obiekty historyczne z narzędzia Apache Ant:

  • James Duncan Davidson stworzył Anta w lipcu 2000 roku.
  • Początkowo użyto go do zbudowania serwera Tomcat i był wbudowanym produktem w zestaw dystrybucyjny Tomcat.
  • W maju 2014 r. wydano wersję 1.9.4 Apache Ant, wyposażoną w wiele zaawansowanych funkcji.
  • Linia 1.10.x została uruchomiona w 2017 r. i nadal jest aktywnie rozwijaną gałęzią.
  • Wersja 1.10.17 została wydana 10 kwietnia 2026 r. i wymaga minimalnego Java 8 czas wykonania.

Funkcje Apache Anta

Oto podstawowe cechy Apache Ant:

  • Jest to projekt open-source.
  • Umożliwia uruchamianie kompilacji na obu Windows oraz systemy UNIX i Linux.
  • Potrzebujesz tylko FMV, ponieważ działa wszędzie tam, gdzie dostępna jest maszyna wirtualna Java.
  • Oferuje szeroki zakres predefiniowanych zadań.
  • Pomaga kopiować pliki z jednej lokalizacji do drugiej.
  • Oferuje interfejs umożliwiający tworzenie niestandardowych zadań.
  • Umożliwia wywoływanie kompilacji z wiersza poleceń, co łatwo integruje się z darmowe i komercyjne IDE.
  • Umożliwia wdrożenie plików binarnych na serwerze testowym.
  • Oferuje rozszerzalną architekturę.
  • Zapewnia wsteczną kompatybilność między wydaniami.

Jak zainstalować i skonfigurować Apache Ant na Windows

Teraz poznamy proces instalacji Apache Ant na Windows.

Zakładamy, że już pobrałeś i zainstalowałeś Java Zestaw deweloperski (JDK) na swoim komputerze. Upewnij się, że zmienna środowiskowa JAVA_HOME jest ustawiona na folder, w którym zainstalowany jest JDK. Wykonaj poniższe kroki, aby zainstalować Anta:

Krok 1) Pobierz pliki binarne.
Pobierz pliki binarne z https://ant.apache.org/bindownload.cgi

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 2) Rozpakuj pliki.
Rozpakuj ten plik zip do wygodnej lokalizacji, takiej jak c:\folder, używając WinZip, WinRAR, 7-Ziplub podobne narzędzie.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 3) Utwórz zmienną środowiskową.
Utwórz zmienną środowiskową dla „ANT_HOME” i przypisz wartość zmiennej do lokalizacji folderu Ant.

  1. Kliknij prawym przyciskiem myszy ikonę Ten komputer.
  2. Kliknij Właściwości.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 4) Przejdź do ustawień systemowych.
Kliknij „Zaawansowane ustawienia systemu”.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 5) We właściwościach systemu
Kliknij zakładkę „Zaawansowane”.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 6) Znajdź zmienne środowiskowe.
Kliknij przycisk „Zmienne środowiskowe…”.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 7) Utwórz nową zmienną.
Kliknij „Nowy”, aby utworzyć nową zmienną użytkownika.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 8) Wprowadź szczegóły zmiennej.
Wprowadź szczegóły nowej zmiennej użytkownika.

  1. Wprowadź nazwę zmiennej jako ANT_HOME.
  2. Wprowadź wartość zmiennej jako folder, w którym rozpakowano Ant, na przykład C:\apache-ant-1.10.17.
  3. Kliknij przycisk „OK”.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 9) Zmienna została utworzona.
Kliknij przycisk „OK”.

Zainstaluj i skonfiguruj Apache Ant Windows

Krok 10) Zamknij ekran.
Kliknij „OK”, aby zamknąć ekran.

Zainstaluj i skonfiguruj Apache Ant Windows

💡 Wskazówka: ANT_HOME musi wskazywać na sam folder instalacyjny, a nie na folder bin w nim zawarty. Następnie należy dodać %ANT_HOME%\bin do zmiennej Path, dzięki czemu polecenie ant będzie rozpoznawane z dowolnego katalogu.

Możesz sprawdzić, czy instalacja Anta przebiegła pomyślnie, wykonując następujące czynności:ping polecenie „ant -version” w wierszu poleceń.

Zobaczysz następujący ekran:

Zainstaluj i skonfiguruj Apache Ant Windows

Przykład Apache ANT

Poniższy plik kompilacji definiuje pojedynczy obiekt docelowy o nazwie hello, który wyświetla komunikat. Element projektu deklaruje nazwę i domyślny obiekt docelowy, dzięki czemu Ant wie, co uruchomić, gdy w wierszu poleceń nie zostanie podany żaden obiekt docelowy.

<?xml version="1.0"?>
<project name="HelloWorld" default="hello" basedir=".">

    <target name="hello">
        <echo>Hello, World</echo>
    </target>

</project>

Zapisz plik jako „build.xml”, a następnie wykonaj następujące dwie czynności:

  • Otwórz wiersz poleceń i przejdź do katalogu zawierającego plik build.xml.
  • Uruchom ant hello, lub po prostu ant, ponieważ hello jest zadeklarowane jako domyślny cel. Aby użyć innej nazwy pliku, uruchom ant -f mybuild.xml hello.

Wyjście:

Buildfile: C:\projects\demo\build.xml

hello:
     [echo] Hello, World

BUILD SUCCESSFUL
Total time: 0 seconds

Struktura projektu ANT

Struktura projektu ANT

Struktura projektu ANT

Jak pokazuje schemat struktury, każda kompilacja będzie zawierać trzy węzły:

  • Projekt
  • Target
  • Zadanie

Projekt

Wszystko w pliku kompilacji w Apache ANT jest objęte projektem.

Atrybuty:

  • Nazwa: Nazwa projektu.
  • Basedir: To jest katalog, z którego będą obliczane wszystkie ścieżki. Można to zmienić, używając właściwości „basedir”.
  • Zaniedbanie: Pomaga zdefiniować domyślny cel dla tego projektu. Jeśli cel nie zostanie podany, Ant wykona domyślny cel.

Target

Cel to zestaw zadań, który jest definiowany w celu osiągnięcia określonego stanu w procesie kompilacji.

Atrybuty:

  • Nazwa: Nazwa celu (wymagane).
  • Descriptjon: Descriptjon celu.
  • Zależy: Od którego celu zależy ten aktualny cel.
  • Jeśli: Wykonuje cel tylko wtedy, gdy dla właściwości docelowej ustawiono wartość.
  • Chyba że: Wykonuje cel tylko wtedy, gdy wartość właściwości nie jest ustawiona.

Zadania

Zadanie to fragment kodu, który można wykonać. Zadania mają wiele argumentów lub atrybutów.

Ogólny wzorzec metody pisania zadania jest następujący:

<name attribute1="value" attribute2="value2"…/>

Możesz skorzystać z wbudowanego zadania lub utworzyć własne. Poniższa tabela zawiera listę zadań, które pojawiają się w niemal każdym Java plik kompilacji.

Zadanie Cel Typowe cechy
przegapić Wydrukuj wiadomość na konsoli wiadomość
mkdir Utwórz katalog reż
usunąć Usuń pliki lub katalogi dir, includeemptydirs
javac skompilować Java pliki źródłowe srcdir, destdir, includeantruntime
słoik Pakowanie klas do archiwum jar destfile, basedir
kopia Kopiuj pliki między lokalizacjami plik, katalog
junita Uruchom testy jednostkowe haltonfailure, printsummary

Kompletny przykład build.xml z wieloma Targets

Realistyczny plik kompilacji łączy ze sobą kilka celów. Atrybut dependencji gwarantuje kolejność, więc Ant czyści folder wyjściowy, kompiluje kod źródłowy i dopiero wtedy kompiluje plik jar.

<?xml version="1.0"?>
<project name="DemoApp" default="jar" basedir=".">

    <!-- reusable values -->
    <property name="src.dir"   value="src"/>
    <property name="build.dir" value="build"/>

    <target name="clean" description="Remove previous output">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile" depends="clean" description="Compile sources">
        <mkdir dir="${build.dir}/classes"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}/classes"
               includeantruntime="false"/>
    </target>

    <target name="jar" depends="compile" description="Package the jar">
        <mkdir dir="${build.dir}/jar"/>
        <jar destfile="${build.dir}/jar/DemoApp.jar"
             basedir="${build.dir}/classes">
            <manifest>
                <attribute name="Main-Class" value="com.guru99.Main"/>
            </manifest>
        </jar>
    </target>

</project>

Wyjście:

Buildfile: C:\projects\DemoApp\build.xml

clean:
   [delete] Deleting directory C:\projects\DemoApp\build

compile:
    [mkdir] Created dir: C:\projects\DemoApp\build\classes
    [javac] Compiling 3 source files to C:\projects\DemoApp\build\classes

jar:
    [mkdir] Created dir: C:\projects\DemoApp\build\jar
      [jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar

BUILD SUCCESSFUL
Total time: 1 second

Apache Ant kontra Maven kontra Gradle

Dominują trzy narzędzia do kompilacji Java ekosystemu, a każdy z nich ma inne stanowisko w kwestii tego, ile struktury należy narzucić.

Parametr Mrówka Apache Apache Maven Gradle
Format skryptu kompilacji XML XML Groovy lub Kotlin DSL
Podejście Proceduralnie, definiujesz każdy krok Deklaratywny, konwencja ponad konfiguracją Deklaratywne z rozszerzeniami skryptowymi
Zarządzanie zależnościami Nie wbudowane, dodane przez Apache Ivy Zbudowany z centralnym repozytorium Wbudowany, kompatybilny z Maven
Struktura projektu Całkowicie za darmo Stały układ standardowy Oparte na konwencji, ale możliwe do uchylenia
Kompilacje przyrostowe Ograniczony Ograniczony Tak, z pamięcią podręczną kompilacji
Krzywa uczenia się Niski dla użytkowników XML Umiarkowany Bardziej strome, wymaga DSL
Najlepiej nadaje się do Projekty legacy i wysoce niestandardowe kompilacje Standardowe Java projektowanie Duży wielomodułowy i Android projektowanie

Ant pozostaje pragmatycznym wyborem, gdy kompilacja nie pasuje do standardowego układu lub gdy istniejący projekt jest już zależny od ręcznie zapisanych celów.

Najlepsze praktyki korzystania z Apache Ant

Oto kilka najlepszych praktyk korzystania z Apache Ant.

  • Powinieneś zautomatyzować numerację kompilacji za pomocą plików właściwości.
  • Zaimplementuj konfigurowalną kompilację za pomocą plików właściwości domyślnych i kompilacji. Pliki te umożliwiają przechowywanie właściwości definiujących dane dla procesu kompilacji, takie jak wersja kompilatora i ustawienia optymalizacji.
  • Gotowych bibliotek można ponownie używać, korzystając z plików właściwości bibliotek.
  • Nadaj każdemu celowi atrybut opisu, aby ant -projecthelp wyświetla użyteczne podsumowanie kompilacji.
  • Przechowuj czysty katalog docelowy osobno i nigdy nie usuwaj katalogu, w którym znajdują się również pliki źródłowe.

Zalety korzystania z Apache Ant

Oto korzyści płynące ze stosowania Apache Ant:

  • Ant jest niezależny od platformy, co pozwala na zarządzanie właściwościami zorientowanymi na platformę, takimi jak separatory plików.
  • Ant umożliwia wykonywanie zadań specyficznych dla danej platformy, takich jak zmiana czasu modyfikacji pliku za pomocą polecenia „touch”.
  • Skrypty Ant są pisane przy użyciu zwykłego XMLJeśli więc znasz już XML, szybko nauczysz się Anta.
  • Ant oferuje obszerną listę predefiniowanych zadań.
  • Oferuje interfejs dla programistówping zadania dostosowane do potrzeb.
  • Ant można łatwo wywołać z wiersza poleceń, co pozwala na integrację z darmowymi i komercyjnymi środowiskami IDE.
  • Potrzebujesz tylko wirtualnej maszyny Java (JVM), więc aplikacja będzie działać wszędzie tam, gdzie jest dostępna wirtualna maszyna Java.
  • Apache Ant to biblioteka typu open source, która umożliwia użytkownikom dostęp do kodu źródłowego i jego reprodukcję.
  • Apache Ant to wieloplatformowe narzędzie umożliwiające obsługę Java ścieżkę klas i strukturę katalogów plików w przystępny sposób.
  • Apache Ant można łatwo rozszerzyć za pomocą Java i inne języki programowania.
  • Apache Ant oferuje wbudowaną obsługę programowania J2EE, np. kompilację i pakowanie EJB.
  • Można go używać zarówno do małych projektów osobistych, jak i do dużych projektów programistycznych lub stron internetowych.

Ant jest często łączony z programem uruchamiającym testy i serwerem ciągłej integracji. Zobacz JUnit dla warstwy testowej, Jenkins dla zaplanowanych kompilacji i używając Apache Ant z Selenium do automatyzacji testów przeglądarki. Raporty generowane podczas kompilacji można renderować za pomocą JasperRaporty.

FAQ

Ant to akronim od Another Neat Tool (inne fajne narzędzie). James Duncan Davidson stworzył je w lipcu 2000 roku podczas pracy nad kompilacją Tomcata i zostało przekazane firmie Apache Software. Foundation.

Nie, ale Ant domyślnie szuka pliku build.xml w bieżącym katalogu. Każda inna nazwa działa po podaniu opcji -f lub -buildfile w wierszu poleceń.

Nie samodzielnie. Apache Ivy to projekt towarzyszący, który dodaje rozwiązywanie zależności i może pobierać artefakty z tych samych repozytoriów, z których korzysta Maven.

Brakuje folderu bin w zmiennej Path lub ANT_HOME wskazuje na niewłaściwy katalog. Otwórz nowy wiersz poleceń po edycji zmiennych, ponieważ istniejące okna zachowują stare wartości.

Tak, dla standardowych celów kompilacji, jar i testów. Sprawdź wpisy w ścieżce klas i atrybut includeantruntime, ponieważ wygenerowane pliki często je pomijają i generują mylące ostrzeżenia.

Tak dla utrzymania dziedzictwa Java Systemy, w których istniejąca kompilacja nie może zostać tanio zmigrowana. Nowe projekty zazwyczaj zaczynają się od Mavena lub Gradle, które narzędzia AI również obsługują bardziej niezawodnie.

Podsumuj ten post następująco: