Tutorial Apache ANT: Ce este Ant Build Tool? Exemplu

⚡ Rezumat inteligent

Apache ANT este un Java instrument de compilare bazat pe XML care automatizează compilarea, testarea, împachetarea și implementarea printr-un fișier de compilare XML. Acest articol definește instrumentul, tracistoria sa, acoperă Windows instalare, explică structura proiectului și o compară cu Maven și Gradle.

  • 🔨 Definiția de bază: Ant este un acronim pentru Another Neat Tool (Un alt instrument îngrijit) și convertește codul sursă într-o aplicație executabilă din linia de comandă.
  • 📄 Fișier de compilare: Fiecare instrucțiune se află într-un fișier XML, denumit convențional build.xml, care nu necesită niciun limbaj de programare suplimentar.
  • 🧱 Structura cu trei noduri: Un fișier de compilare imbrica întotdeauna sarcinile în ținte și țintele într-un singur element de proiect.
  • 🔗 Controlul dependenței: Atributul depends comandă țintele, așadar compilarea se execută întotdeauna înainte de jar și înainte de implementare.
  • ⚙️ Configurarea mediului: Instalarea necesită un JDK, variabila ANT_HOME și folderul Ant bin adăugat în calea sistemului.
  • 🆚 Comparație instrumente: Ant oferă libertate procedurală, Maven impune convenții cu gestionarea dependențelor și Gradle combină ambele cu o compilare scriptată.
  • ???? Beneficiu de portabilitate: O compilare rulează identic pe Windows și Linux oriunde Java Mașina virtuală este disponibilă.

Tutorial Apache ANT

Ce este un instrument de construcție?

Un instrument de compilare este un instrument de programare care este folosit pentru a construi o nouă versiune a unui program. Automatizează crearea unei aplicații executabile din orice cod sursă.

Fără un instrument de compilare, un dezvoltator ar compila manual fiecare fișier sursă, ar copia resursele, ar rula suita de teste și ar împacheta rezultatul la fiecare modificare. Un instrument de compilare înregistrează acești pași o dată și îi repetă identic pe fiecare mașină.

Ce este Apache Ant?

Apache Ant este Javainstrument bazat pe linie de comandă pentru construirea Java aplicații cu portabilitatea deplină a pure Java cod. Permite dezvoltatorilor să adopte principii agile și dezvoltare bazată pe teste pentru a automatiza sarcinile de dezvoltare repetitive, cum ar fi generarea documentației. Ant este un acronim pentru Another Neat Tool (Un alt instrument interesant).

Apache Ant

După cum arată diagrama, Ant citește un fișier de compilare, rezolvă ordinea țintelor din interiorul acestuia, apoi execută sarcinile individuale care compilează, copiază, testează și împachetează aplicația.

Pentru ce este folosit instrumentul Apache Ant Build?

Iată câteva beneficii importante ale utilizării instrumentului de construire:

  • Un instrument de compilare vă permite să automatizați anumite sarcini repetitive, cum ar fi compilarea codului sursă, rularea testelor software și crearea de fișiere pentru implementarea software-ului.
  • Instrumentele de construcție rulează în cea mai mare parte fără o interfață grafică cu utilizatorul.
  • Te ajută să transformi codul sursă în cod executabil.
  • Oferă opțiunea de recompilare a unui fișier numai dacă este necesar.
  • Vă permite să compilați un număr mare de fișiere într-un timp relativ scurt.
  • Două instrumente de construcție foarte populare utilizate de Java Dezvoltatorii sunt Apache Maven și Ant.

Istoria Apache Ant

Acum vom afla despre istoricul instrumentului de compilare Apache Ant.

Iată repere istorice importante ale instrumentului Apache Ant:

  • James Duncan Davidson a creat Ant în iulie 2000.
  • Inițial a fost folosit pentru a construi Tomcat și a venit ca un produs încorporat în kitul de distribuție Tomcat.
  • În mai 2014, a fost lansată Apache Ant versiunea 1.9.4 cu multe funcții avansate.
  • Linia 1.10.x a început în 2017 și rămâne ramura întreținută activ.
  • Versiunea 1.10.17 a fost lansată pe 10 aprilie 2026 și necesită un minim Java 8 timpi de execuție.

Caracteristicile Apache Ant

Iată caracteristicile esențiale ale Apache Ant:

  • Este un proiect open-source.
  • Îți permite să rulezi build-uri pe ambele Windows și sisteme UNIX sau Linux.
  • Ai nevoie doar de un FMV, deoarece rulează oriunde este disponibilă o JVM.
  • Oferă o gamă largă de sarcini predefinite.
  • Te ajută să copiezi fișiere dintr-o locație în alta.
  • Oferă o interfață pentru dezvoltarea de sarcini personalizate.
  • Vă permite să invocați versiuni din linia de comandă, ceea ce se integrează ușor cu IDE-uri gratuite și comerciale.
  • Vă permite să implementați fișierele binare pe un server de testare.
  • Oferă o arhitectură extensibilă.
  • Oferă compatibilitate inversă între versiuni.

Cum se instalează și se configurează Apache Ant Windows

Acum vom învăța procesul de instalare a Apache Ant pe Windows.

Presupunem că ați descărcat și instalat deja aplicația Java Kit de dezvoltare (JDK) pe computer. Asigurați-vă că variabila de mediu JAVA_HOME este setată la folderul în care este instalat JDK-ul. Urmați pașii de mai jos pentru instalarea Ant:

Pas 1) Descărcați binarele.
Descărcați binarele de pe https://ant.apache.org/bindownload.cgi

Instalați și configurați Apache Ant activat Windows

Pas 2) Decuplați fișierele.
Dezarhivați acest fișier zip într-o locație convenabilă, cum ar fi c:\folder, folosind WinZip, WinRAR, 7-Zip, sau un instrument similar.

Instalați și configurați Apache Ant activat Windows

Pas 3) Creați o variabilă de mediu.
Creați o variabilă de mediu pentru „ANT_HOME” și atribuiți valoarea variabilei locației folderului Ant.

  1. Faceți clic dreapta pe pictograma Acest PC.
  2. Faceți clic pe Proprietăți.

Instalați și configurați Apache Ant activat Windows

Pas 4) Accesați setările sistemului.
Faceți clic pe „Setări avansate de sistem”.

Instalați și configurați Apache Ant activat Windows

Pas 5) Pe proprietățile sistemului,
faceți clic pe fila „Avansat”.

Instalați și configurați Apache Ant activat Windows

Pas 6) Găsiți variabilele de mediu.
Faceți clic pe butonul „Variabile de mediu…”.

Instalați și configurați Apache Ant activat Windows

Pas 7) Creați o variabilă nouă.
Faceți clic pe „Nou” pentru a crea o nouă variabilă utilizator.

Instalați și configurați Apache Ant activat Windows

Pas 8) Introduceți detaliile variabilei.
Introduceți detaliile noii variabile de utilizator.

  1. Introduceți numele variabilei ca ANT_HOME.
  2. Introduceți valoarea variabilei ca folderul în care a fost dezarhivat Ant, de exemplu C:\apache-ant-1.10.17.
  3. Faceți clic pe butonul „OK”.

Instalați și configurați Apache Ant activat Windows

Pas 9) Variabilă creată.
Faceți clic pe butonul „OK”.

Instalați și configurați Apache Ant activat Windows

Pas 10) Închideți ecranul.
Faceți clic pe „OK” pentru a închide ecranul.

Instalați și configurați Apache Ant activat Windows

💡 Sfat: ANT_HOME trebuie să indice spre folderul de instalare în sine, nu spre folderul bin din interiorul acestuia. Apoi adăugați %ANT_HOME%\bin la variabila Path, astfel încât comanda ant să fie recunoscută din orice director.

Puteți verifica o instalare Ant reușită prin typing comanda „ant -version” din linia de comandă.

Veți vedea următorul ecran:

Instalați și configurați Apache Ant activat Windows

Exemplu de Apache ANT

Fișierul de compilare de mai jos definește o singură țintă numită hello care afișează un mesaj. Elementul project declară un nume și o țintă implicită, astfel încât Ant știe ce să execute atunci când nicio țintă nu este numită în linia de comandă.

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

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

</project>

Salvați acest fișier ca „build.xml”, apoi urmați acești doi pași:

  • Deschideți promptul de comandă și mutați-vă în directorul care conține fișierul build.xml.
  • Alerga ant hello, sau pur și simplu ant, deoarece hello este declarat ca țintă implicită. Pentru a utiliza un nume de fișier diferit, executați ant -f mybuild.xml hello.

ieșire:

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

hello:
     [echo] Hello, World

BUILD SUCCESSFUL
Total time: 0 seconds

Structura proiectului ANT

Structura proiectului ANT

Structura proiectului ANT

După cum arată diagrama structurii, fiecare construcție va conține trei noduri:

  • Proiect
  • Target
  • Sarcină

Proiect

Tot ce se află în fișierul de compilare din Apache ANT se află sub un proiect.

Atribute:

  • Nume: Numele proiectului.
  • Bazat pe: Acesta este directorul din care vor fi calculate toate căile. Această funcție poate fi suprascrisă folosind proprietatea „basedir”.
  • Mod implicit: Vă ajută să definiți ținta implicită pentru acest proiect. Dacă nu este specificată nicio țintă, atunci Ant va executa cea implicită.

Target

O țintă este un set de sarcini, definite pentru a atinge o stare specifică în procesul de construcție.

Atribute:

  • Nume: Numele țintei (obligatoriu).
  • Description: Descriptionul țintei.
  • Depinde: De ce țintă depinde această țintă curentă.
  • Dacă: Execută ținta numai dacă este setată o valoare pentru o proprietate țintă.
  • Dacă nu: Execută ținta numai dacă valoarea proprietății nu este setată.

Sarcini

O sarcină este o porțiune de cod care poate fi executată. Sarcinele au mai multe argumente sau atribute.

Modelul general de metodă pentru scrierea unei sarcini este:

<name attribute1="value" attribute2="value2"…/>

Puteți utiliza fie o sarcină încorporată, fie vă puteți crea propria sarcină. Tabelul de mai jos listează sarcinile care apar în aproape fiecare Java fișier de construire.

Sarcină Scop Atribute tipice
ecou Imprimați un mesaj către consolă mesaj
mkdir Creați un director dir
șterge Eliminați fișiere sau directoare director, includeredirectoare goale
javaneză Compila Java fișiere sursă srcdir, destdir, includeantruntime
borcan Împachetați clasele într-o arhivă jar fișier destinație, director de bază
copiaţi Copiați fișierele între locații fișier, director
junit Execută teste unitare eșec halton, rezumat imprimare

Exemplu complet build.xml cu mai multe Targets

Un fișier de compilare realist leagă mai multe ținte împreună. Atributul depends garantează ordinea, așa că Ant curăță folderul de ieșire, compilează sursa și abia apoi construiește fișierul jar.

<?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>

ieșire:

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

Trei instrumente de construire domină Java ecosistem, iar fiecare adoptă o poziție diferită cu privire la câtă structură să impună.

Parametru Apache Ant Apache Maven Gradle
Formatul scriptului de construire XML XML Groovy sau Kotlin DSL
Abordarea Procedural, tu definești fiecare pas Declarativ, convenție peste configurație Declarativ cu extensii scriptate
Managementul dependenței Nu este încorporat, ci adăugat prin Apache Ivy Integrat cu depozit central Încorporat, compatibil cu Maven
Structura proiectului Complet gratuit Aspect standard fix Bazat pe convenție, dar poate fi înlocuit
Construiri incrementale Limitat Limitat Da, cu o memorie cache de compilare
Curbă de învățare Scăzut pentru utilizatorii XML Moderat Mai abrupt, necesită DSL
Cel mai potrivit pentru Proiecte vechi și construcții extrem de personalizate Standard Java Proiecte Multi-modul mare și Android Proiecte

Ant rămâne alegerea pragmatică atunci când o versiune nu se încadrează într-un layout standard sau când un proiect existent depinde deja de obiective scrise de mână.

Cele mai bune practici de utilizare a Apache Ant

Iată câteva dintre cele mai bune practici pentru utilizarea Apache Ant.

  • Ar trebui să automatizați numerotarea build folosind fișiere de proprietate.
  • Implementați o compilare configurabilă cu ajutorul fișierelor de proprietăți implicite și de compilare. Aceste fișiere vă permit să stocați proprietăți care definesc datele pentru procesul de compilare, cum ar fi versiunea compilatorului și setările de optimizare.
  • Puteți reutiliza bibliotecile predefinite folosind fișierele de proprietăți ale bibliotecii.
  • Dați fiecărei ținte un atribut de descriere, astfel încât ant -projecthelp listează un rezumat util al construcției.
  • Păstrați separat ținta curată și nu ștergeți niciodată un director care conține și fișiere sursă.

Avantajele utilizării Apache Ant

Iată beneficiile utilizării Apache Ant:

  • Ant este neutru față de platformă, așa că vă ajută să gestionați proprietățile centrate pe platformă, cum ar fi separatoarele de fișiere.
  • Ant vă permite să efectuați sarcini specifice platformei, cum ar fi modificarea orei de modificare a unui fișier folosind comanda „touch”.
  • Scripturile Ant sunt scrise folosind text simplu XML, deci dacă ești deja familiarizat cu XML, vei putea învăța Ant rapid.
  • Ant oferă o listă lungă de sarcini predefinite.
  • Oferă o interfață pentru dezvoltareping sarcini personalizate.
  • Puteți invoca cu ușurință Ant din linia de comandă, ceea ce permite integrarea cu IDE-uri gratuite și comerciale.
  • Ai nevoie doar de o JVM, deci rulează oriunde este disponibilă o JVM.
  • Apache Ant este o bibliotecă open-source care permite utilizatorilor să acceseze codul sursă și să-l reproducă.
  • Apache Ant este un instrument multiplatformă care vă permite să gestionați Java classpath și structura directorului de fișiere într-un mod accesibil.
  • Apache Ant este ușor de extensibil folosind Java și alte limbaje de programare.
  • Apache Ant oferă suport încorporat pentru dezvoltarea J2EE, cum ar fi compilarea și împachetarea EJB.
  • Îl poți folosi atât pentru un proiect personal mic, cât și pentru un proiect software mare sau un site web.

Ant este frecvent asociat cu un rulator de teste și un server de integrare continuă. Vezi JUnit pentru stratul de testare, Jenkins pentru construcții programate și folosind Apache Ant cu Selenium pentru automatizarea testelor de browser. Rapoartele produse în timpul unei construcții pot fi redate cu JasperReports.

Întrebări frecvente

Ant este un acronim pentru Another Neat Tool (Another Neat Tool). James Duncan Davidson l-a creat în iulie 2000 în timp ce lucra la versiunea Tomcat și a fost donat către Apache Software. Foundation.

Nu, dar Ant caută fișierul build.xml în mod implicit în directorul curent. Orice alt nume funcționează atunci când este transmis cu opțiunea -f sau -buildfile din linia de comandă.

Nu de unul singur. Apache Ivy este proiectul însoțitor care adaugă rezoluție de dependențe și poate descărca artefacte din aceleași repozitorii pe care le folosește Maven.

Folderul bin lipsește din variabila Path sau ANT_HOME indică directorul greșit. Deschideți o nouă linie de comandă după editarea variabilelor, deoarece ferestrele existente păstrează valorile vechi.

Da pentru ținte standard de compilare, jar și test. Verificați intrările classpath și atributul includeantruntime, deoarece fișierele generate le omit adesea și produc avertismente confuze.

Da, pentru menținerea moștenirii Java sisteme, unde versiunea existentă nu poate fi migrată ieftin. Proiectele noi încep de obicei cu Maven sau Gradle, pe care instrumentele de inteligență artificială le susțin și mai fiabil.

Rezumați această postare cu: