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: