Apache ANT Tutorial: Hva er Ant Build Tool? Eksempel

โšก Smart oppsummering

Apache ANT er en Java basert byggeverktรธy som automatiserer kompilering, testing, pakking og distribusjon gjennom en XML-byggefil. Denne artikkelen definerer verktรธyet, traces dens historie, dekker Windows installasjon, forklarer prosjektstrukturen og sammenligner den med Maven og Gradle.

  • ๐Ÿ”จ Kjernedefinisjon: Ant er et akronym for Another Neat Tool, og det konverterer kildekode til et kjรธrbart program fra kommandolinjen.
  • ๐Ÿ“„ Byggefil: Hver instruksjon ligger i en XML-fil, konvensjonelt kalt build.xml, som ikke krever noe ekstra programmeringssprรฅk.
  • ๐Ÿงฑ Tre-nodestruktur: En byggefil nester alltid oppgaver inne i mรฅl, og mรฅl inne i ett enkelt prosjektelement.
  • ๐Ÿ”— Avhengighetskontroll: depends-attributtet ordrer mรฅl, sรฅ kompilering kjรธres alltid fรธr jar og fรธr distribusjon.
  • โš™๏ธ Miljรธoppsett: Installasjonen krever en JDK, ANT_HOME-variabelen og Ant bin-mappen lagt til i systembanen.
  • ๐Ÿ†š Verktรธysammenligning: Ant tilbyr prosedyrefrihet, Maven hรฅndhever konvensjoner med avhengighetshรฅndtering, og Gradle kombinerer begge med en skriptbasert versjon.
  • ???? Portabilitetsfordel: En konstruksjon kjรธrer identisk pรฅ Windows og Linux hvor enn enn Java Virtuell maskin er tilgjengelig.

Apache ANT veiledning

Hva er et byggeverktรธy?

Et byggeverktรธy er et programmeringsverktรธy som brukes til รฅ bygge en ny versjon av et program. Den automatiserer opprettelsen av et kjรธrbart program fra hvilken som helst kildekode.

Uten et byggeverktรธy ville en utvikler kompilere hver kildefil manuelt, kopiere ressurser, kjรธre testpakken og pakke resultatet av hver endring. Et byggeverktรธy registrerer disse trinnene รฉn gang og gjentar dem identisk pรฅ hver maskin.

Hva er Apache Ant?

Apache Ant er en Java-basert kommandolinjeverktรธy for bygging Java applikasjoner med full portabilitet av pure Java kode. Det lar utviklere ta i bruk smidige prinsipper og testdrevet utvikling for รฅ automatisere repeterende utviklingsoppgaver som รฅ generere dokumentasjon. Ant er et akronym for Another Neat Tool.

Apache Ant

Som diagrammet viser, leser Ant en byggefil, bestemmer rekkefรธlgen pรฅ mรฅlene i den, og kjรธrer deretter de individuelle oppgavene som kompilerer, kopierer, tester og pakker applikasjonen.

Hva brukes Apache Ant Build-verktรธyet til?

Her er viktige fordeler med รฅ bruke byggeverktรธyet:

  • Et byggeverktรธy lar deg automatisere spesifikke, repeterende oppgaver som รฅ kompilere kildekoden, kjรธre programvaretester og opprette filer for programvaredistribusjon.
  • Byggverktรธy kjรธrer stort sett uten et grafisk brukergrensesnitt.
  • Det hjelper deg รฅ konvertere kildekode til kjรธrbar kode.
  • Den tilbyr et alternativ for รฅ kompilere en fil pรฅ nytt bare hvis det er nรธdvendig.
  • Det lar deg kompilere et stort antall filer pรฅ relativt kort tid.
  • To svรฆrt populรฆre byggeverktรธy som brukes av Java utviklerne er Apache Maven og Ant.

Historien til Apache Ant

Nรฅ skal vi lรฆre om historien til byggeverktรธyet Apache Ant.

Her er viktige historiske landemerker fra Apache Ant-verktรธyet:

  • James Duncan Davidson opprettet Ant i juli 2000.
  • Den ble opprinnelig brukt til รฅ bygge Tomcat og kom som et innebygd produkt i Tomcat-distribusjonssettet.
  • I mai 2014 ble Apache Ant versjon 1.9.4 utgitt med mange avanserte funksjoner.
  • 1.10.x-linjen startet i 2017 og er fortsatt den aktivt vedlikeholdte grenen.
  • Versjon 1.10.17 ble utgitt 10. april 2026 og krever minimum Java 8 kjรธretid.

Funksjoner av Apache Ant

Her er de viktigste funksjonene i Apache Ant:

  • Det er et รฅpen kildekode-prosjekt.
  • Det lar deg kjรธre bygg pรฅ begge Windows og UNIX- eller Linux-systemer.
  • Du trenger bare en JVM, ettersom den kjรธrer overalt hvor en JVM er tilgjengelig.
  • Den tilbyr et bredt utvalg av forhรฅndsdefinerte oppgaver.
  • Det hjelper deg med รฅ kopiere filer fra ett sted til et annet.
  • Den tilbyr et grensesnitt for รฅ utvikle tilpassede oppgaver.
  • Den lar deg starte bygg fra kommandolinjen, som enkelt integreres med gratis og kommersielle IDE-er.
  • Den lar deg distribuere binรฆrfilene til en testserver.
  • Den tilbyr en utvidbar arkitektur.
  • Den tilbyr bakoverkompatibilitet pรฅ tvers av utgivelser.

Hvordan installere og konfigurere Apache Ant pรฅ Windows

Nรฅ skal vi lรฆre prosessen med รฅ installere Apache Ant pรฅ Windows.

Vi antar at du allerede har lastet ned og installert Java Utviklingssett (JDK) pรฅ datamaskinen din. Sรธrg for at miljรธvariabelen JAVA_HOME er satt til mappen der JDK-en din er installert. Fรธlg trinnene nedenfor for รฅ installere Ant:

Trinn 1) Last ned binรฆrfiler.
Last ned binรฆrfiler fra https://ant.apache.org/bindownload.cgi

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 2) Pakk ut filer.
Pakk ut denne zip-filen til et passende sted, for eksempel c:\mappen, ved รฅ bruke WinZip, WinRAR, 7-Zip, eller et lignende verktรธy.

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 3) Lag en miljรธvariabel.
Opprett en miljรธvariabel for ยซANT_HOMEยป og tilordne verdien av variabelen til plasseringen av Ant-mappen.

  1. Hรธyreklikk pรฅ Denne PC-en-ikonet.
  2. Klikk pรฅ Egenskaper.

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 4) Gรฅ til systeminnstillinger.
Klikk pรฅ "Avanserte systeminnstillinger".

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 5) Pรฅ systemegenskaper,
klikk pรฅ fanen ยซAvansertยป.

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 6) Finn miljรธvariablene.
Klikk pรฅ knappen ยซMiljรธvariablerโ€ฆยป.

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 7) Opprett en ny variabel.
Klikk pรฅ "Ny" for รฅ opprette en ny brukervariabel.

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 8) Skriv inn variabeldetaljene.
Skriv inn detaljene for den nye brukervariabelen.

  1. Skriv inn variabelnavnet som ANT_HOME.
  2. Skriv inn variabelverdien som mappen der Ant ble pakket ut, for eksempel C:\apache-ant-1.10.17.
  3. Klikk pรฅ โ€œOKโ€ -knappen.

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 9) Variabel opprettet.
Klikk pรฅ โ€œOKโ€ -knappen.

Installer og konfigurer Apache Ant pรฅ Windows

Trinn 10) Lukk skjermen.
Klikk pรฅ "OK" for รฅ lukke skjermen.

Installer og konfigurer Apache Ant pรฅ Windows

๐Ÿ’ก Tips: ANT_HOME mรฅ peke pรฅ selve installasjonsmappen, ikke pรฅ bin-mappen inni den. Legg deretter til %ANT_HOME%\bin til Path-variabelen, slik at ant-kommandoen gjenkjennes fra enhver katalog.

Du kan bekrefte en vellykket Ant-installasjon ved รฅ typing kommandoen ยซant -versionยป i ledeteksten.

Du vil se fรธlgende skjerm:

Installer og konfigurer Apache Ant pรฅ Windows

Eksempel pรฅ Apache ANT

Byggefilen nedenfor definerer et enkelt mรฅl kalt hello som skriver ut en melding. Prosjektelementet deklarerer et navn og et standardmรฅl, slik at Ant vet hva som skal kjรธres nรฅr det ikke er noe mรฅl navngitt pรฅ kommandolinjen.

<?xml version="1.0"?>
<project name="HelloWorld" default="hello" basedir=".">

    <target name="hello">
        <echo>Hello, World</echo>
    </target>

</project>

Lagre denne filen som ยซbuild.xmlยป, og fรธlg deretter disse to trinnene:

  • ร…pne ledeteksten og gรฅ til mappen som inneholder build.xml.
  • Kjรธr ant hello, eller bare ant, fordi hello er deklarert som standardmรฅl. For รฅ bruke et annet filnavn, kjรธr ant -f mybuild.xml hello.

Utgang:

Buildfile: C:\projects\demo\build.xml

hello:
     [echo] Hello, World

BUILD SUCCESSFUL
Total time: 0 seconds

ANT-prosjektets struktur

ANT-prosjektets struktur

ANT-prosjektets struktur

Som strukturdiagrammet viser, vil hver build inneholde tre noder:

  • Prosjekt
  • Target
  • Oppgave

Prosjekt

Alt inne i byggefilen i Apache ANT er under et prosjekt.

Attributter:

  • Navn: Navnet pรฅ prosjektet.
  • Basert adresse: Dette er katalogen som alle stiene skal beregnes fra. Dette kan overstyres ved รฅ bruke egenskapen ยซbasedirยป.
  • Misligholde: Hjelper deg med รฅ definere standardmรฅlet for dette prosjektet. Hvis det ikke er gitt noe mรฅl, vil Ant utfรธre standardmรฅlet.

Target

Et mรฅl er et sett med oppgaver som er definert for รฅ nรฅ en bestemt tilstand i byggeprosessen.

Attributter:

  • Navn: Navn pรฅ mรฅlet (obligatorisk).
  • Description: Description av mรฅlet.
  • Avhenger av: Hvilket mรฅl dette nรฅvรฆrende mรฅlet avhenger av.
  • If: Utfรธrer bare mรฅlet hvis en verdi er angitt for en mรฅlegenskap.
  • Med mindre: Utfรธrer bare mรฅlet hvis egenskapsverdien ikke er angitt.

Oppgaver

En oppgave er et stykke kode som kan kjรธres. Oppgaver har flere argumenter eller attributter.

Det generelle metodemรธnsteret for รฅ skrive en oppgave er:

<name attribute1="value" attribute2="value2"โ€ฆ/>

Du kan enten bruke en innebygd oppgave, eller du kan lage din egen oppgave. Tabellen nedenfor viser oppgavene som vises i nesten alle Java byggefilen.

Oppgave Formรฅl Typiske attributter
savner Skriv ut en melding til konsollen melding
mkdir Lag en katalog dir
slette Fjern filer eller mapper dir, inkluder tomme mappemapper
Javac Kompilere Java kildefiler srcdir, destdir, includeantruntime
jar Pakke klasser inn i et jar-arkiv destfile, basedir
kopiere Kopier filer mellom steder fil, tildir
junit Kjรธr enhetstester haltonfailure, utskriftssammendrag

Komplett build.xml-eksempel med flere Targets

En realistisk byggefil kjeder flere mรฅl sammen. depends-attributtet garanterer rekkefรธlgen, sรฅ Ant renser utdatamappen, kompilerer kildekoden og bygger fรธrst deretter 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>

Utgang:

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 byggeverktรธy dominerer Java รธkosystem, og hver enkelt tar forskjellig standpunkt til hvor mye struktur de skal pรฅlegge.

Parameter Apache Ant Apache Maven Gradle
Bygg skriptformat XML XML Groovy eller Kotlin DSL
Tilnรฆrming Prosedyremessig, du definerer hvert trinn Deklarativ, konvensjon fremfor konfigurasjon Deklarativ med skriptutvidelser
Avhengighetsstyring Ikke innebygd, lagt til via Apache Ivy Innebygd med sentralt arkiv Innebygd, Maven-kompatibel
Prosjektstruktur Helt gratis Fast standardoppsett Konvensjonsbasert, men overstyrbar
Trinnvise bygg Begrenset Begrenset Ja, med en byggebuffer
Lรฆringskurve Lavt for XML-brukere Moderat Brattere, krever DSL
Passer best for Eldre prosjekter og svรฆrt tilpassede bygg standard Java prosjekter Stor multimodul og Android prosjekter

Ant er fortsatt det pragmatiske valget nรฅr en konstruksjon ikke passer til et standardoppsett, eller nรฅr et eksisterende prosjekt allerede er avhengig av hรฅndskrevne mรฅl.

Beste fremgangsmรฅter for bruk av Apache Ant

Her er noen gode fremgangsmรฅter for bruk av Apache Ant.

  • Du bรธr automatisere byggnummerering ved รฅ bruke egenskapsfiler.
  • Implementer en konfigurerbar bygging ved hjelp av standard- og byggeegenskapsfiler. Disse filene lar deg lagre egenskaper som definerer dataene for byggeprosessen, for eksempel kompilatorversjon og optimaliseringsinnstillinger.
  • Du kan gjenbruke forhรฅndsbygde biblioteker ved รฅ bruke bibliotekets eiendomsfiler.
  • Gi hvert mรฅl et beskrivelsesattributt, slik at ant -projecthelp viser et brukbart sammendrag av bygget.
  • Hold det rene mรฅlet separat, og slett aldri en katalog som ogsรฅ inneholder kildefiler.

Fordeler med รฅ bruke Apache Ant

Her er fordelene med รฅ bruke Apache Ant:

  • Ant er plattformnรธytral, sรฅ det hjelper deg med รฅ administrere plattformsentriske egenskaper som filseparatorer.
  • Ant lar deg utfรธre plattformspesifikke oppgaver, for eksempel รฅ endre den endrede tiden til en fil ved hjelp av kommandoen ยซtouchยป.
  • Ant-skript skrives med vanlig XML, sรฅ hvis du allerede er kjent med XML, vil du raskt kunne lรฆre Ant.
  • Ant tilbyr en stor liste med forhรฅndsdefinerte oppgaver.
  • Den tilbyr et grensesnitt for utviklingping tilpassede oppgaver.
  • Du kan enkelt starte Ant fra kommandolinjen, noe som tillater integrering med gratis og kommersielle IDE-er.
  • Du trenger bare en JVM, sรฅ den kjรธrer overalt hvor en JVM er tilgjengelig.
  • Apache Ant er et รฅpen kildekode-bibliotek som lar brukere fรฅ tilgang til kildekoden og reprodusere den.
  • Apache Ant er et verktรธy pรฅ tvers av plattformer som lar deg hรฅndtere Java klassesti og filkatalogstruktur pรฅ en rimelig mรฅte.
  • Apache Ant er lett รฅ utvide med Java og andre programmeringssprรฅk.
  • Apache Ant tilbyr innebygd stรธtte for J2EE-utvikling, for eksempel EJB-kompilering og -pakking.
  • Du kan bruke den til et lite personlig prosjekt sรฅ vel som til et stort programvareprosjekt eller nettsted.

Ant kobles ofte sammen med en testkjรธrer og en kontinuerlig integrasjonsserver. Se JUnit for testlaget, Jenkins for planlagte bygg, og bruker Apache Ant med Selenium for automatisering av nettlesertester. Rapporter som produseres under en bygging kan gjengis med Jasper rapporterer.

Spรธrsmรฅl og svar

Ant er et akronym for Another Neat Tool. James Duncan Davidson opprettet det i juli 2000 mens han jobbet med Tomcat-bygget, og det ble donert til Apache Software. Foundation.

Nei, men Ant ser etter build.xml som standard i gjeldende katalog. Alle andre navn fungerer nรฅr de sendes med -f- eller -buildfile-alternativet pรฅ kommandolinjen.

Ikke alene. Apache Ivy er tilhรธrende prosjekt som legger til avhengighetslรธsning, og det kan laste ned artefakter fra de samme repositoriene som Maven bruker.

Bin-mappen mangler i Path-variabelen, eller ANT_HOME peker pรฅ feil katalog. ร…pne en ny ledetekst etter at du har redigert variablene, fordi eksisterende vinduer beholder de gamle verdiene.

Ja for standard kompilerings-, jar- og testmรฅl. Sjekk klassebaneoppfรธringene og includeantruntime-attributtet, fordi genererte filer ofte utelater dem og gir forvirrende advarsler.

Ja for รฅ opprettholde arven Java systemer, der den eksisterende byggingen ikke kan migreres billig. Nye prosjekter starter vanligvis med Maven eller Gradle, som AI-verktรธy ogsรฅ stรธtter mer pรฅlitelig.

Oppsummer dette innlegget med: