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.

  • 🔨 Kernedefinition: Ant er et akronym for Another Neat Tool, og det konverterer kildekode til et eksekverbart program fra kommandolinjen.
  • 📄 Byggefil: Hver instruktion findes i en XML-fil, traditionelt kaldet build.xml, som ikke kræver noget yderligere programmeringssprog.
  • 🧱 Tre-nodestruktur: En byggefil indlejrer altid opgaver i mål og mål i et enkelt projektelement.
  • 🔗 Afhængighedskontrol: Depends-attributten ordrerer mål, så compilation kører altid før jar og før implementering.
  • 🇧🇷 Miljøopsætning: Installationen kræver en JDK, ANT_HOME-variablen og Ant bin-mappen tilføjet til systemstien.
  • 🆚 Værktøjssammenligning: Ant tilbyder proceduremæssig frihed, Maven håndhæver konventioner med afhængighedsstyring, og Gradle kombinerer begge med et scriptet build.
  • 🌍 Fordel ved bærbarhed: En build kører identisk på Windows og Linux hvor som helst Java Virtuel maskine er tilgængelig.

Apache ANT tutorial

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.

Apache Ant

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

Installer og konfigurer Apache Ant på Windows

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.

Installer og konfigurer Apache Ant på Windows

Trin 3) Opret en miljøvariabel.
Opret en miljøvariabel for "ANT_HOME", og tildel værdien af ​​variablen til placeringen af ​​Ant-mappen.

  1. Højreklik på ikonet "Denne pc".
  2. Klik på Egenskaber.

Installer og konfigurer Apache Ant på Windows

Trin 4) Gå til systemindstillinger.
Klik på "Avancerede systemindstillinger".

Installer og konfigurer Apache Ant på Windows

Trin 5) På systemegenskaber,
klik på fanen "Avanceret".

Installer og konfigurer Apache Ant på Windows

Trin 6) Find miljøvariablerne.
Klik på knappen "Miljøvariabler...".

Installer og konfigurer Apache Ant på Windows

Trin 7) Opret en ny variabel.
Klik på "Ny" for at oprette en ny brugervariabel.

Installer og konfigurer Apache Ant på Windows

Trin 8) Indtast variabeloplysningerne.
Indtast oplysninger om den nye brugervariabel.

  1. Indtast variabelnavnet som ANT_HOME.
  2. Indtast variabelværdien som den mappe, hvor Ant blev udpakket, for eksempel C:\apache-ant-1.10.17.
  3. Klik på knappen “OK”.

Installer og konfigurer Apache Ant på Windows

Trin 9) Variabel oprettet.
Klik på knappen “OK”.

Installer og konfigurer Apache Ant på Windows

Trin 10) Luk skærmen.
Klik på "OK" for at lukke skærmen.

Installer og konfigurer Apache Ant på Windows

💡 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:

Installer og konfigurer Apache Ant på Windows

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 simpelthen ant, fordi hello er angivet som standardmål. For at bruge et andet filnavn skal du køre ant -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

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 -projecthelp viser 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.

Ofte Stillede Spørgsmål

Ant er et akronym for Another Neat Tool. James Duncan Davidson skabte det i juli 2000, mens han arbejdede på Tomcat-versionen, og det blev doneret til Apache Software. Foundation.

Nej, men Ant søger som standard efter build.xml i den aktuelle mappe. Ethvert andet navn fungerer, når det sendes med -f eller -buildfile-indstillingen på kommandolinjen.

Ikke alene. Apache Ivy er det ledsagende projekt, der tilføjer afhængighedsopløsning, og det kan downloade artefakter fra de samme arkiver, som Maven bruger.

Mappen bin mangler i Path-variablen, eller ANT_HOME peger på den forkerte mappe. Åbn en ny kommandoprompt efter redigering af variablerne, da eksisterende vinduer bevarer de gamle værdier.

Ja, for standard compile-, jar- og testmål. Tjek classpath-posterne og includeantruntime-attributten, da genererede filer ofte udelader dem og giver forvirrende advarsler.

Ja for at bevare arven Java systemer, hvor den eksisterende build ikke kan migreres billigt. Nye projekter starter normalt med Maven eller Gradle, som AI-værktøjer også understøtter mere pålideligt.

Opsummer dette indlæg med: