Apache Ant

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 29 mai 2014; verificările necesită 19 modificări .
Apache Ant
(un alt instrument îngrijit)
Tip de Automatizare asamblare
Dezvoltator Apache Software Foundation
Scris in Java [2] [1]
Sistem de operare Software multiplatformă
Prima editie iulie 2000 și 17 februarie 2006 [1]
Platformă hardware Mașină virtuală Java
ultima versiune
Licență Licență Apache 2.0
Site-ul web ant.apache.org
 Fișiere media la Wikimedia Commons

Apache Ant ( în engleză  furnică  - o furnică și un acronim  - „Another Neat Tool”) este un utilitar pentru automatizarea procesului de construire a unui produs software. Este un analog multiplatform al utilitarului make , unde toate comenzile sunt scrise în format XML .

Ant a fost creat ca parte a proiectului Jakarta , astăzi este un proiect independent de prim nivel al Apache Software Foundation .

Prima versiune a fost dezvoltată de inginerul Sun Microsystems James Davidson .) care avea nevoie de un utilitar precum make în timpul dezvoltării primei implementări de referință J2EE .

Ant, spre deosebire de celălalt generator de proiecte Apache Maven , oferă un proiect imperativ mai degrabă decât o construcție declarativă .

Descriere

Spre deosebire de make, utilitarul Ant este complet independent de platformă, necesită doar ca mediul de lucru Java  ( JRE ) să fie instalat pe sistemul utilizat . Omiterea comenzilor sistemului de operare și formatul XML asigură portabilitatea scripturilor.

Procesul de compilare este controlat de un script XML , numit și fișier Build. În primul rând, acest fișier conține definiția proiectului, care constă din ținte individuale ( Țintele ). Obiectivele sunt comparabile cu procedurile din limbajele de programare și conțin apeluri la comenzi de sarcini ( Sarcini ). Fiecare sarcină este o comandă indivizibilă, atomică, care efectuează o acțiune elementară.

Dependențe pot fi definite între obiective - fiecare obiectiv este executat numai după ce toate obiectivele de care depinde sunt îndeplinite (dacă acestea au fost deja îndeplinite anterior, nu se realizează reexecuția).

Exemple tipice de obiective sunt curățarea (eliminarea fișierelor intermediare), compilarea ( compilarea tuturor claselor), implementarea (implementarea aplicației pe server). Setul specific de obiective și relațiile lor depind de specificul proiectului.

Ant vă permite să definiți propriile tipuri de sarcini prin crearea de clase Java care implementează anumite interfețe .

Sarcini utilizate frecvent (Sarcini)

Distribuția include multe biblioteci care afectează o gamă largă de sarcini. În plus, pe site-ul web al proiectului sunt disponibile biblioteci suplimentare care extind funcționalitatea produsului, de exemplu, pentru integrarea cu sisteme terțe. Versiunea standard conține peste 150 de tipuri de sarcini. Exemple de astfel de comenzi sunt prezentate mai jos.

Codul Acțiune
javac compilarea codului Java
copie Copiere fișiere
șterge ștergerea fișierelor și directoarelor
mutare mutarea fișierelor și directoarelor
a inlocui înlocuirea fragmentelor de text în fișiere
junit rularea automată a testelor unitare
exec executarea unei comenzi externe
fermoar crearea unei arhive Zip
cvs executând comanda CVS
Poștă trimiterea de e- mail
xslt Suprapunerea Transformărilor XSLT

Exemplu de script

Acest script definește două ținte, clean și build . Primul elimină fișierele temporare, al doilea compilează și creează o arhivă JAR . Ținta de construire depinde de curățare , așa că atunci când rulează, va curăța mai întâi și abia apoi va face lucrările de construcție efective. Build este, de asemenea, selectat ca țintă implicită. Aceasta înseamnă că va fi executat la procesarea acestui script fără a specifica în mod explicit o țintă.

<?xml version="1.0"?> <project default= "build" basedir= "." > <property name= "name" value= "AntBuildJar" /> <property name= "src.dir" location= "${basedir}/src" /> <property name= "build" location= "${basedir} /build" /> <property name= "build.classes" location= "${build}/classes" /> <path id= "libs.dir" > <fileset dir= "lib" includes= "**/* .jar" /> </path> <!-- Creați aplicația --> <target name= "build" depends= "clean" description= "Construiți aplicația" > <!-- Creați directoare --> <mkdir dir = "${build.classes}" /> <!-- Compilați fișierele sursă --> <javac srcdir= "${src.dir}" destdir= "${build.classes}" debug= "false" depreciation= "true" optimize= "true" > <classpath refid= "libs.dir" /> </javac> <!-- Copiați fișierele necesare --> <copy todir= "${build.classes}" > <fileset dir= "${src.dir}" includes= "**/*.*" excludes= "** /*.java" /> </copy> <!-- Creați fișier JAR --> <jar jarfile= "${build}/${name}.jar" > <fileset dir= "${build.classes}" /> </jar> </target > <!-- Curățare --> <target name= "clean" description= "Elimină toate fișierele temporare" > <!-- Eliminați fișierele --> <delete dir= "${build.classes}" /> </target >> </proiect>

Note

  1. 1 2 https://projects.apache.org/json/projects/ant.json
  2. Proiectul Ant Open Source pe Open Hub: Pagina de limbi - 2006.
  3. Știri despre proiectul Apache Ant™

Vezi și

  • Apache Maven  este un instrument alternativ cu sarcini similare
  • Gradle este un instrument alternativ care acceptă sarcinile de la ant

Link -uri