Apache ANT Tutorial: Hvad er Ant Build Tool? Eksempel
⚡ Smart opsummering
Apache ANT er en Java baseret byggeværktøj, der automatiserer kompilering, testning, pakning og implementering via en XML-byggefil. Denne artikel definerer værktøjet, traces dens historie, dækker Windows installation, forklarer projektstrukturen og sammenligner den med Maven og Gradle.

Hvad er et byggeværktøj?
Et byggeværktøj er et programmeringsværktøj, som bruges til at bygge en ny version af et program. Det automatiserer oprettelsen af et eksekverbart program fra enhver kildekode.
Uden et byggeværktøj ville en udvikler manuelt kompilere hver kildefil, kopiere ressourcer, køre testpakken og pakke resultatet af hver ændring. Et byggeværktøj registrerer disse trin én gang og gentager dem identisk på hver maskine.
Hvad er Apache Ant?
Apache Ant er en Java-baseret kommandolinjeværktøj til bygning Java applikationer med fuld portabilitet af pure Java kode. Det giver udviklere mulighed for at anvende agile principper og testdrevet udvikling for at automatisere gentagne udviklingsopgaver som f.eks. generering af dokumentation. Ant er et akronym for Another Neat Tool.
Som diagrammet viser, læser Ant en byggefil, bestemmer rækkefølgen af målene i den og kører derefter de individuelle opgaver, der kompilerer, kopierer, tester og pakker applikationen.
Hvad bruges Apache Ant Build-værktøj til?
Her er vigtige fordele ved at bruge byggeværktøjet:
- Et byggeværktøj giver dig mulighed for at automatisere specifikke gentagne opgaver, såsom at kompilere kildekoden, køre softwaretests og oprette filer til softwareimplementering.
- Byggeværktøjer kører for det meste uden en grafisk brugergrænseflade.
- Det hjælper dig med at konvertere kildekode til eksekverbar kode.
- Den tilbyder kun en mulighed for at rekompilere en fil, hvis det er nødvendigt.
- Det giver dig mulighed for at kompilere et stort antal filer på relativt kort tid.
- To meget populære byggeværktøjer brugt af Java udviklerne er Apache Maven og Ant.
Historien om Apache Ant
Nu vil vi lære om historien bag Apache Ant-byggeværktøjet.
Her er vigtige historiske vartegn fra Apache Ant-værktøjet:
- James Duncan Davidson skabte Ant i juli 2000.
- Det blev oprindeligt brugt til at bygge Tomcat og kom som et indbygget produkt i Tomcat-distributionssættet.
- I maj 2014 blev Apache Ant version 1.9.4 udgivet med mange avancerede funktioner.
- 1.10.x-linjen startede i 2017 og er fortsat den aktivt vedligeholdte gren.
- Version 1.10.17 blev udgivet den 10. april 2026 og kræver mindst Java 8 løbetider.
Funktioner af Apache Ant
Her er de vigtigste funktioner i Apache Ant:
- Det er et open source-projekt.
- Det giver dig mulighed for at køre builds på begge Windows og UNIX- eller Linux-systemer.
- Du behøver kun en FMV, da den kører overalt, hvor en JVM er tilgængelig.
- Den tilbyder en bred vifte af foruddefinerede opgaver.
- Det hjælper dig med at kopiere filer fra et sted til et andet.
- Det tilbyder en grænseflade til at udvikle brugerdefinerede opgaver.
- Det giver dig mulighed for at kalde builds fra kommandolinjen, hvilket nemt integreres med gratis og kommercielle IDE'er.
- Det giver dig mulighed for at implementere binære filer på en testserver.
- Det tilbyder en udvidelig arkitektur.
- Den tilbyder bagudkompatibilitet på tværs af udgivelser.
Sådan installeres og konfigureres Apache Ant på Windows
Nu vil vi lære processen med at installere Apache Ant på Windows.
Vi antager, at du allerede har downloadet og installeret Java Udviklingssæt (JDK) på din computer. Sørg for, at JAVA_HOME-miljøvariablen er indstillet til den mappe, hvor din JDK er installeret. Følg nedenstående trin for at installere Ant:
Trin 1) Download de binære filer.
Download binære filer fra https://ant.apache.org/bindownload.cgi
Trin 2) Pak filer ud.
Pak denne zip-fil ud til en praktisk placering, f.eks. c:\mappe, ved hjælp af WinZip, WinRAR, 7-Zip, eller et lignende værktøj.
Trin 3) Opret en miljøvariabel.
Opret en miljøvariabel for "ANT_HOME", og tildel værdien af variablen til placeringen af Ant-mappen.
- Højreklik på ikonet "Denne pc".
- Klik på Egenskaber.
Trin 4) Gå til systemindstillinger.
Klik på "Avancerede systemindstillinger".
Trin 5) På systemegenskaber,
klik på fanen "Avanceret".
Trin 6) Find miljøvariablerne.
Klik på knappen "Miljøvariabler...".
Trin 7) Opret en ny variabel.
Klik på "Ny" for at oprette en ny brugervariabel.
Trin 8) Indtast variabeloplysningerne.
Indtast oplysninger om den nye brugervariabel.
- Indtast variabelnavnet som ANT_HOME.
- Indtast variabelværdien som den mappe, hvor Ant blev udpakket, for eksempel C:\apache-ant-1.10.17.
- Klik på knappen “OK”.
Trin 9) Variabel oprettet.
Klik på knappen “OK”.
Trin 10) Luk skærmen.
Klik på "OK" for at lukke skærmen.
💡 Tip: ANT_HOME skal pege på selve installationsmappen, ikke på bin-mappen i den. Tilføj derefter %ANT_HOME%\bin til Path-variablen, så ant-kommandoen genkendes fra enhver mappe.
Du kan bekræfte en vellykket Ant-installation ved at typing kommandoen “ant -version” i kommandoprompten.
Du vil se følgende skærm:
Eksempel på Apache ANT
Byggefilen nedenfor definerer et enkelt mål med navnet hello, der udskriver en besked. Project-elementet deklarerer et navn og et standardmål, så Ant ved, hvad der skal køres, når der ikke er et navngivet mål på kommandolinjen.
<?xml version="1.0"?> <project name="HelloWorld" default="hello" basedir="."> <target name="hello"> <echo>Hello, World</echo> </target> </project>
Gem denne fil som “build.xml”, og følg derefter disse to trin:
- Åbn kommandoprompten, og gå til den mappe, der indeholder build.xml.
- Kør
ant hello, eller simpelthenant, fordi hello er angivet som standardmål. For at bruge et andet filnavn skal du køreant -f mybuild.xml hello.
Output:
Buildfile: C:\projects\demo\build.xml
hello:
[echo] Hello, World
BUILD SUCCESSFUL
Total time: 0 seconds
ANT-projektets struktur
ANT-projektets struktur
Som strukturdiagrammet viser, vil hver build indeholde tre noder:
- Projekt
- Target
- Opgaver
Projekt
Alt inde i build-filen i Apache ANT er under et projekt.
Attributter:
- Navn: Projektets navn.
- Baseret adresse: Dette er den mappe, hvorfra alle stierne beregnes. Dette kan tilsidesættes ved at bruge egenskaben "basedir".
- Standard: Hjælper dig med at definere standardmålet for dette projekt. Hvis der ikke er angivet et mål, vil Ant udføre standardmålet.
Target
Et mål er et sæt opgaver, der er defineret for at nå en bestemt tilstand i byggeprocessen.
Attributter:
- Navn: Målets navn (påkrævet).
- Description: Description af målet.
- Afhænger af: Hvilket mål dette aktuelle mål afhænger af.
- Hvis: Udfører kun målet, hvis der er angivet en værdi for en målegenskab.
- Med mindre: Udfører kun målet, hvis egenskabsværdien ikke er angivet.
Opgaver
En opgave er et stykke kode, der kan udføres. Opgaver har flere argumenter eller attributter.
Det generelle metodemønster til at skrive en opgave er:
<name attribute1="value" attribute2="value2"…/>
Du kan enten bruge en indbygget opgave, eller du kan oprette din egen opgave. Tabellen nedenfor viser de opgaver, der vises i næsten alle Java byggefil.
| Opgaver | Formål | Typiske egenskaber |
|---|---|---|
| ekko | Udskriv en besked til konsollen | besked |
| mkdir | Opret en mappe | dir |
| slette | Fjern filer eller mapper | mappe, inkluder tomme mappe |
| javanesisk | Kompiler Java kildefiler | srcdir, destdir, includeantruntime |
| krukke | Pak klasser ind i et jar-arkiv | destfile, basedir |
| kopiere | Kopier filer mellem lokationer | fil, til mappe |
| junit | Kør enhedstests | haltonfailure, printresumé |
Komplet build.xml-eksempel med flere Targets
En realistisk byggefil kæder flere mål sammen. Attributten depends garanterer rækkefølgen, så Ant renser outputmappen, kompilerer kildekoden og først derefter bygger jar-filen.
<?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>
Output:
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 vs Maven vs Gradle
Tre byggeværktøjer dominerer Java økosystem, og hver enkelt indtager en forskellig holdning til, hvor meget struktur der skal pålægges.
| Parameter | Apache Ant | Apache Maven | Gradle |
|---|---|---|---|
| Byg scriptformat | XML | XML | Groovy eller Kotlin DSL |
| Tilgang | Procedurel, du definerer hvert trin | Deklarativ, konvention frem for konfiguration | Deklarativ med scriptede udvidelser |
| Afhængighedsstyring | Ikke indbygget, tilføjet via Apache Ivy | Indbygget med centralt lager | Indbygget, Maven-kompatibel |
| Projektets struktur | Helt gratis | Fast standardlayout | Konventionsbaseret, men tilsidesættelig |
| Trinvise builds | Limited | Limited | Ja, med en build-cache |
| Indlæringskurve | Lav for XML-brugere | Moderat | Stejlere, kræver DSL |
| Bedste velegnet til | Ældre projekter og meget brugerdefinerede builds | Standard Java projekter | Stort multimodul og Android projekter |
Ant er fortsat det pragmatiske valg, når et build ikke passer til et standardlayout, eller når et eksisterende projekt allerede er afhængigt af håndskrevne mål.
Bedste praksis for at bruge Apache Ant
Her er nogle bedste fremgangsmåder for brug af Apache Ant.
- Du bør automatisere build-nummerering ved hjælp af egenskabsfiler.
- Implementer et konfigurerbart build ved hjælp af standard- og build-egenskabsfiler. Disse filer giver dig mulighed for at gemme egenskaber, der definerer dataene for din build-proces, f.eks. compilerversion og optimeringsindstillinger.
- Du kan genbruge forudbyggede biblioteker ved hjælp af biblioteksegenskabsfiler.
- Giv hvert mål en beskrivelsesattribut, så
ant -projecthelpviser en brugbar oversigt over buildet. - Hold det rene mål separat, og slet aldrig en mappe, der også indeholder kildefiler.
Fordele ved at bruge Apache Ant
Her er fordelene ved at bruge Apache Ant:
- Ant er platformneutral, så det hjælper dig med at administrere platformcentrerede egenskaber såsom filseparatorer.
- Ant giver dig mulighed for at udføre platformspecifikke opgaver, såsom at ændre den ændrede tid for en fil ved hjælp af kommandoen 'touch'.
- Ant-scripts skrives ved hjælp af almindelige XML, så hvis du allerede er bekendt med XML, vil du hurtigt kunne lære Ant.
- Ant tilbyder en stor liste over foruddefinerede opgaver.
- Det tilbyder en grænseflade til udviklingping tilpassede opgaver.
- Du kan nemt kalde Ant fra kommandolinjen, hvilket muliggør integration med gratis og kommercielle IDE'er.
- Du behøver kun en JVM, så den kører alle steder, hvor en JVM er tilgængelig.
- Apache Ant er et open source-bibliotek, som giver brugerne mulighed for at få adgang til kildekoden og reproducere den.
- Apache Ant er et cross-platform værktøj, der giver dig mulighed for at håndtere Java klassesti og filmappestruktur på en overkommelig måde.
- Apache Ant er let at udvide med Java og andre programmeringssprog.
- Apache Ant tilbyder indbygget understøttelse af J2EE-udvikling, såsom EJB-kompilering og -pakning.
- Du kan bruge det til et lille personligt projekt såvel som til et stort softwareprojekt eller en hjemmeside.
Ant parres ofte med en testrunner og en server for kontinuerlig integration. JUnit for testlaget, Jenkins for planlagte byggeri, og bruger Apache Ant med Selenium til automatisering af browsertests. Rapporter, der produceres under en build, kan gengives med Jasper Rapporter.













