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.
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).
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
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.
Krok 3) Utwórz zmienną środowiskową.
Utwórz zmienną środowiskową dla „ANT_HOME” i przypisz wartość zmiennej do lokalizacji folderu Ant.
- Kliknij prawym przyciskiem myszy ikonę Ten komputer.
- Kliknij Właściwości.
Krok 4) Przejdź do ustawień systemowych.
Kliknij „Zaawansowane ustawienia systemu”.
Krok 5) We właściwościach systemu
Kliknij zakładkę „Zaawansowane”.
Krok 6) Znajdź zmienne środowiskowe.
Kliknij przycisk „Zmienne środowiskowe…”.
Krok 7) Utwórz nową zmienną.
Kliknij „Nowy”, aby utworzyć nową zmienną użytkownika.
Krok 8) Wprowadź szczegóły zmiennej.
Wprowadź szczegóły nowej zmiennej użytkownika.
- Wprowadź nazwę zmiennej jako ANT_HOME.
- Wprowadź wartość zmiennej jako folder, w którym rozpakowano Ant, na przykład C:\apache-ant-1.10.17.
- Kliknij przycisk „OK”.
Krok 9) Zmienna została utworzona.
Kliknij przycisk „OK”.
Krok 10) Zamknij ekran.
Kliknij „OK”, aby zamknąć ekran.
💡 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:
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 prostuant, ponieważ hello jest zadeklarowane jako domyślny cel. Aby użyć innej nazwy pliku, uruchomant -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
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 -projecthelpwyś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.














