Apache ANT Tutorial: Vad är Ant Build Tool? Exempel
⚡ Smart sammanfattning
Apache ANT är en Java baserat byggverktyg som automatiserar kompilering, testning, paketering och distribution via en XML-byggfil. Den här artikeln definierar verktyget, tracdess historia, täcker Windows installation, förklarar projektstrukturen och jämför den med Maven och Gradle.
Vad är ett byggverktyg?
Ett byggverktyg är ett programmeringsverktyg som används för att bygga en ny version av ett program. Det automatiserar skapandet av ett körbart program från valfri källkod.
Utan ett byggverktyg skulle en utvecklare manuellt kompilera varje källfil, kopiera resurser, köra testsviten och paketera resultatet av varje ändring. Ett byggverktyg registrerar dessa steg en gång och upprepar dem identiskt på varje maskin.
Vad är Apache Ant?
Apache Ant är en Java-baserat kommandoradsverktyg för att bygga Java applikationer med full portabilitet av pure Java kod. Det gör det möjligt för utvecklare att anamma agila principer och testdriven utveckling för att automatisera repetitiva utvecklingsuppgifter som att generera dokumentation. Ant är en förkortning för Another Neat Tool.
Som diagrammet visar läser Ant en byggfil, bestämmer ordningen på målen inuti den och kör sedan de enskilda uppgifter som kompilerar, kopierar, testar och paketerar applikationen.
Vad används Apache Ant Build-verktyget till?
Här är viktiga fördelar med att använda byggverktyget:
- Ett byggverktyg låter dig automatisera specifika repetitiva uppgifter som att kompilera källkoden, köra programvarutester och skapa filer för programvarudistribution.
- Byggverktyg körs oftast utan ett grafiskt användargränssnitt.
- Det hjälper dig att konvertera källkod till körbar kod.
- Den erbjuder ett alternativ att kompilera om en fil endast om det behövs.
- Det låter dig kompilera ett stort antal filer på relativt kort tid.
- Två mycket populära byggverktyg som används av Java utvecklarna är Apache Maven och Ant.
Historien om Apache Ant
Nu ska vi lära oss om historien bakom byggverktyget Apache Ant.
Här är viktiga historiska landmärken från verktyget Apache Ant:
- James Duncan Davidson skapade Ant i juli 2000.
- Den användes ursprungligen för att bygga Tomcat och kom som en inbyggd produkt i Tomcats distributionspaket.
- I maj 2014 släpptes Apache Ant version 1.9.4 med många avancerade funktioner.
- 1.10.x-linjen startade 2017 och är fortfarande den aktivt underhållna grenen.
- Version 1.10.17 släpptes den 10 april 2026 och kräver minst Java 8 körtider.
Funktioner hos Apache Ant
Här är de viktigaste funktionerna i Apache Ant:
- Det är ett projekt med öppen källkod.
- Det låter dig köra byggen på båda Windows och UNIX- eller Linux-system.
- Du behöver bara en JVM, eftersom den körs överallt där en JVM är tillgänglig.
- Den erbjuder ett brett utbud av fördefinierade uppgifter.
- Det hjälper dig att kopiera filer från en plats till en annan.
- Det erbjuder ett gränssnitt för att utveckla anpassade uppgifter.
- Det låter dig anropa byggen från kommandoraden, vilket enkelt integreras med fria och kommersiella IDE:er.
- Det låter dig distribuera binärfilerna till en testserver.
- Den erbjuder en utökningsbar arkitektur.
- Den erbjuder bakåtkompatibilitet mellan olika utgåvor.
Hur man installerar och konfigurerar Apache Ant på Windows
Nu ska vi lära oss processen att installera Apache Ant på Windows.
Vi antar att du redan har laddat ner och installerat Java Utvecklings paket (JDK) på din dator. Se till att miljövariabeln JAVA_HOME är inställd på den mapp där din JDK är installerad. Följ stegen nedan för att installera Ant:
Steg 1) Ladda ner binärfilerna.
Ladda ner binärfilerna från https://ant.apache.org/bindownload.cgi
Steg 2) Packa upp filer.
Packa upp den här zip-filen till en lämplig plats, till exempel c:\mapp, med hjälp av WinZip, WinRAR, 7-Zip, eller ett liknande verktyg.
Steg 3) Skapa en miljövariabel.
Skapa en miljövariabel för "ANT_HOME" och tilldela variabelns värde till platsen för Ant-mappen.
- Högerklicka på ikonen Den här datorn.
- Klicka på Egenskaper.
Steg 4) Gå till systeminställningar.
Klicka på "Avancerade systeminställningar".
Steg 5) På systemegenskaper,
klicka på fliken "Avancerat".
Steg 6) Hitta miljövariablerna.
Klicka på knappen "Miljövariabler...".
Steg 7) Skapa en ny variabel.
Klicka på "Ny" för att skapa en ny användarvariabel.
Steg 8) Ange variabelinformationen.
Ange informationen om den nya användarvariabeln.
- Ange variabelnamnet som ANT_HOME.
- Ange variabelvärdet som den mapp där Ant packades upp, till exempel C:\apache-ant-1.10.17.
- Klicka på "OK" -knappen.
Steg 9) Variabel skapad.
Klicka på "OK" -knappen.
Steg 10) Stäng skärmen.
Klicka på "OK" för att stänga skärmen.
💡 Tips: ANT_HOME måste peka på själva installationsmappen, inte på bin-mappen inuti den. Lägg sedan till %ANT_HOME%\bin till variabeln Path, så att ant-kommandot känns igen från vilken katalog som helst.
Du kan verifiera en lyckad Ant-installation genom att typing kommandot ”ant -version” i kommandotolken.
Du kommer att se följande skärm:
Exempel på Apache ANT
Byggfilen nedan definierar ett enda mål med namnet hello som skriver ut ett meddelande. Project-elementet deklarerar ett namn och ett standardmål, så att Ant vet vad som ska köras när inget mål namnges på kommandoraden.
<?xml version="1.0"?> <project name="HelloWorld" default="hello" basedir="."> <target name="hello"> <echo>Hello, World</echo> </target> </project>
Spara den här filen som "build.xml" och följ sedan dessa två steg:
- Öppna kommandotolken och gå till katalogen som innehåller build.xml.
- Körning
ant hello, eller baraant, eftersom hello är deklarerat som standardmål. För att använda ett annat filnamn, körant -f mybuild.xml hello.
Produktion:
Buildfile: C:\projects\demo\build.xml
hello:
[echo] Hello, World
BUILD SUCCESSFUL
Total time: 0 seconds
ANT-projektets struktur
ANT-projektets struktur
Som strukturdiagrammet visar kommer varje build att innehålla tre noder:
- Projekt
- Target
- uppgift
Projekt
Allt i byggfilen i Apache ANT är under ett projekt.
Attribut:
- Namn: Projektets namn.
- Baserad: Det här är katalogen från vilken alla sökvägar kommer att beräknas. Detta kan åsidosättas med hjälp av egenskapen "basedir".
- Standard: Hjälper dig att definiera standardmålet för det här projektet. Om inget mål anges kommer Ant att köra standardmålet.
Target
Ett mål är en uppsättning uppgifter som definieras för att nå ett specifikt tillstånd i byggprocessen.
Attribut:
- Namn: Målets namn (obligatoriskt).
- DescriptJon: Descriptjon av målet.
- Beror på: Vilket mål detta nuvarande mål beror på.
- Om: Kör endast målet om ett värde har angetts för en målegenskap.
- Såvida inte: Utför endast målet om egenskapsvärdet inte är angett.
Uppgifter
En uppgift är en kodstycke som kan köras. Uppgifter har flera argument eller attribut.
Det allmänna metodmönstret för att skriva en uppgift är:
<name attribute1="value" attribute2="value2"…/>
Du kan antingen använda en inbyggd uppgift, eller så kan du skapa din egen uppgift. Tabellen nedan listar de uppgifter som förekommer i nästan alla Java byggfilen.
| uppgift | Syfte | Typiska attribut |
|---|---|---|
| missar | Skriv ut ett meddelande till konsolen | meddelande |
| mkdir | Skapa en katalog | dir |
| radera | Ta bort filer eller kataloger | dir, includetommadirs |
| javanesiska | Sammanställa Java källfiler | srcdir, destdir, includeantruntime |
| burk | Paketera klasser till ett jar-arkiv | destinationfile, basedir |
| kopiera | Kopiera filer mellan platser | fil, till katalog |
| juni | Kör enhetstester | haltonfailure, utskriftssammanfattning |
Komplett build.xml-exempel med flera Targets
En realistisk byggfil länkar samman flera mål. Attributet depends garanterar ordningen, så Ant rensar utdatamappen, kompilerar källkoden och bygger först sedan burken.
<?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>
Produktion:
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 byggverktyg dominerar Java ekosystem, och var och en intar olika ståndpunkter kring hur mycket struktur de ska införa.
| Parameter | Apache Ant | Apache Maven | Gradle |
|---|---|---|---|
| Bygg skriptformat | XML | XML | Groovy eller Kotlin DSL |
| Tillvägagångssätt | Procedurmässigt, du definierar varje steg | Deklarativ, konvention framför konfiguration | Deklarativ med skriptade tillägg |
| Beroendehantering | Inte inbyggd, tillagd via Apache Ivy | Inbyggd med centralt arkiv | Inbyggd, Maven-kompatibel |
| Projektets struktur | Helt gratis | Fast standardlayout | Konventionsbaserad men åsidosättbar |
| Stegvisa byggen | Begränsad | Begränsad | Ja, med en byggcache |
| Inlärningskurva | Låg för XML-användare | Moderate | Brantare, kräver DSL |
| Bäst lämpad för | Äldre projekt och mycket anpassade byggen | Standard Java projekt | Stor multimodul och Android projekt |
Ant förblir det pragmatiska valet när en version inte passar en standardlayout, eller när ett befintligt projekt redan är beroende av handskrivna mål.
Bästa metoder för att använda Apache Ant
Här är några bästa metoder för att använda Apache Ant.
- Du bör automatisera byggnumrering med hjälp av egenskapsfiler.
- Implementera en konfigurerbar build med hjälp av standard- och build-egenskapsfiler. Dessa filer låter dig lagra egenskaper som definierar data för din build-process, till exempel kompilatorversion och optimeringsinställningar.
- Du kan återanvända förbyggda bibliotek med hjälp av biblioteksegenskapsfiler.
- Ge varje mål ett beskrivningsattribut, så att
ant -projecthelplistar en användbar sammanfattning av bygget. - Håll det rena målet separat och radera aldrig en katalog som också innehåller källfiler.
Fördelar med att använda Apache Ant
Här är fördelarna med att använda Apache Ant:
- Ant är plattformsneutralt, så det hjälper dig att hantera plattformscentrerade egenskaper som filseparatorer.
- Med Ant kan du utföra plattformsspecifika uppgifter, som att ändra den ändrade tiden för en fil med hjälp av kommandot 'touch'.
- Ant-skript skrivs med vanligt XML, så om du redan är bekant med XML kommer du att kunna lära dig Ant snabbt.
- Ant erbjuder en stor lista med fördefinierade uppgifter.
- Den erbjuder ett gränssnitt för utvecklingping anpassade uppgifter.
- Du kan enkelt anropa Ant från kommandoraden, vilket möjliggör integration med gratis och kommersiella IDE:er.
- Du behöver bara en JVM, så den körs överallt där en JVM finns tillgänglig.
- Apache Ant är ett bibliotek med öppen källkod som tillåter användare att komma åt källkoden och reproducera den.
- Apache Ant är ett plattformsoberoende verktyg som låter dig hantera Java klassväg och filkatalogstruktur på ett överkomligt sätt.
- Apache Ant är lätt att utöka med Java och andra programmeringsspråk.
- Apache Ant erbjuder inbyggt stöd för J2EE-utveckling, såsom EJB-kompilering och paketering.
- Du kan använda den för både ett litet personligt projekt och ett stort programvaruprojekt eller en webbplats.
Ant paras ofta ihop med en testkörare och en server för kontinuerlig integration. JUnit för testlagret, Jenkins för planerade byggen, och använder Apache Ant med Selenium för automatisering av webbläsartestning. Rapporter som produceras under en byggprocess kan renderas med Jasper.














