Apache Ant (endnu et pænt værktøj) | |
---|---|
Type | Monteringsautomatisering |
Udvikler | Apache Software Foundation |
Skrevet i | Java [2] [1] |
Operativ system | Cross-platform software |
Første udgave | juli 2000 og 17. februar 2006 [1] |
Hardware platform | Java virtuel maskine |
nyeste version |
|
Licens | Apache 2.0-licens |
Internet side | ant.apache.org |
Mediefiler på Wikimedia Commons |
Apache Ant ( engelsk ant - en ant og et akronym - "Another Neat Tool") er et værktøj til at automatisere processen med at bygge et softwareprodukt. Det er en cross-platform analog af make -værktøjet , hvor alle kommandoer er skrevet i XML -format.
Ant blev skabt som en del af Jakarta -projektet , i dag er det et uafhængigt første-niveau-projekt af Apache Software Foundation .
Den første version blev udviklet af Sun Microsystems ingeniør James Davidson .) der havde brug for et hjælpeprogram som mærke under udviklingen af den første J2EE referenceimplementering .
Ant giver, i modsætning til den anden projektbygger Apache Maven , et imperativt snarere end et deklarativt projektbyggeri.
I modsætning til make er Ant-værktøjet fuldstændig platformsuafhængigt, det kræver kun, at Java -arbejdsmiljøet ( JRE ) er installeret på det system, der bruges . Udeladelsen af styresystemkommandoer og XML -formatet giver mulighed for overførsel af scripts.
Byggeprocessen styres af et XML -script, også kaldet en byggefil. Først og fremmest indeholder denne fil definitionen af projektet, som består af individuelle mål ( Targets ). Mål kan sammenlignes med procedurer i programmeringssprog og indeholder opkald til opgavekommandoer ( Tasks ). Hver opgave er en udelelig, atomisk kommando, der udfører en elementær handling.
Afhængigheder kan defineres mellem mål - hvert mål udføres først, efter at alle de mål, det afhænger af, er gennemført (hvis de allerede er gennemført før, udføres genudførelse ikke).
Typiske eksempler på mål er clean (fjernelse af mellemliggende filer), kompilering ( kompilering af alle klasser), deploy (implementering af applikationen på serveren). Det specifikke sæt af mål og deres relationer afhænger af projektets detaljer.
Ant giver dig mulighed for at definere dine egne opgavetyper ved at oprette Java-klasser , der implementerer bestemte grænseflader .
Distributionen omfatter mange biblioteker, der påvirker en lang række opgaver. Derudover er der yderligere biblioteker tilgængelige på projektets hjemmeside, der udvider produktets funktionalitet, for eksempel til integration med tredjepartssystemer. Standardversionen indeholder over 150 opgavetyper. Eksempler på sådanne kommandoer er vist nedenfor.
Koden | Handling |
---|---|
javac | kompilering af Java-kode |
kopi | kopiering af filer |
slette | sletning af filer og mapper |
bevæge sig | flytte filer og mapper |
erstatte | udskiftning af tekstfragmenter i filer |
junit | automatisk kørsel af enhedstests |
exec | udførelse af en ekstern kommando |
lynlås | oprettelse af et Zip- arkiv |
cvs | udføre CVS- kommando |
post | sende e- mail |
xslt | Overlay XSLT Transformers |
Dette script definerer to mål, clean og build . Den første fjerner midlertidige filer, den anden kompilerer og opretter et JAR- arkiv. Byggemålet afhænger af clean , så når det kører, vil det først rydde op og først derefter udføre de faktiske byggejobs . Byg er også valgt som standardmål. Det betyder, at det vil blive udført, når dette script behandles uden eksplicit at angive et mål.
<?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" /> <sti id= "libs.dir" > <fileset dir= "lib" include = "**/* .jar" /> </path> <!-- Byg applikationen --> <target name= "build" depends= "clean" description= "Bygger applikationen" > <!-- Opret mapper --> <mkdir dir = "${build.classes}" /> <!-- Kompiler kildefiler --> <javac srcdir= "${src.dir}" destdir= "${build.classes}" debug= "false" deprecation= "true" optimize= "true" > <classpath refid= "libs.dir" /> </javac> <!-- Kopier nødvendige filer --> <copy todir= "${build.classes}" > <fileset dir= "${src.dir}" include = "**/*.*" excludes= "** /*.java" /> </copy> <!-- Opret JAR-fil --> <jar jarfile= "${build}/${name}.jar" > <fileset dir= "${build.classes}" /> </jar> </target > <!-- Oprydning --> <target name= "clean" description= "Fjerner alle midlertidige filer" > <!-- Fjern filer --> <delete dir= "${build.classes}" /> </target > </projekt>Apache Software Foundation | |||||||
---|---|---|---|---|---|---|---|
Projekter på topniveau |
| ||||||
Delprojekter |
| ||||||
Apache Web |
| ||||||
Andre projekter | |||||||
Udvikling af projekter ( inkubator ) |
| ||||||
Nedlagte projekter ( loftsrum ) | |||||||
|
Monteringsautomatiseringssystemer | |
---|---|