Apache Ant - Apache Ant
tento článek obsahuje obsah, který je napsán jako reklama.Říjen 2019) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
tento článek potřebuje další citace pro ověření.Červenec 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Původní autoři | James Duncan Davidson |
---|---|
Vývojáři | Softwarová nadace Apache |
První vydání | 19. července 2000 |
Stabilní uvolnění | 1. 10. 9 / 30. září 2020[1] |
Úložiště | Úložiště mravenců |
Napsáno | Jáva |
Plošina | Java SE |
Typ | Sestavte nástroj |
Licence | Licence Apache 2.0 |
webová stránka | mravenec |
Apache Ant je softwarový nástroj pro automatizace sestavování softwaru procesy, které pocházejí z Apache Tomcat projekt na počátku roku 2000 jako náhrada za Udělat nástroj pro sestavení Unixu. Je to podobné jako Make, ale je implementováno pomocí Jáva jazyk a vyžaduje platformu Java. Na rozdíl od Make, který používá Makefile formát, Ant používá XML popsat proces sestavení kódu a jeho závislosti.
Vydáno pod Licence Apache podle Softwarová nadace Apache, Ant je open-source projekt.
Dějiny
Ant („Another Neat Tool“)[2] byl vytvořen James Duncan Davidson při přípravě Sun Microsystems je odkaz JSP a Servlet motor, později Apache Tomcat, k vydání jako open-source. A proprietární verze Make byla použita k jeho sestavení na Solaris platforma, ale ve světě open-source neexistoval způsob, jak kontrolovat, která platforma byla použita k vytvoření Tomcat; takže Ant byl vytvořen jako jednoduchý nástroj nezávislý na platformě k sestavení Tomcatu ze směrnic v XML „build file“. Ant (verze 1.1) byl oficiálně vydán jako samostatný produkt 19. července 2000.
Bylo učiněno několik návrhů Ant verze 2, například AntEater od Jamese Duncana Davidsona, Myrmidon od Petera Donalda a Mutant od Conora MacNeilla, z nichž žádný nenašel u vývojářské komunity velké přijetí.[3]
Najednou (2002) byl Ant nástrojem sestavení, který používá většina vývojových projektů Java.[4] Například většina vývojářů prostředí Java s otevřeným zdrojovým kódem build.xml
soubory s jejich distribucí.[Citace je zapotřebí ] Protože díky Antovi bylo integrace triviální JUnit Díky testům s procesem sestavení umožnil Ant ochotným vývojářům snadné přijetí testovaný vývoj, a dokonce extrémní programování.
Rozšíření
WOProject-Ant[5] je jen jedním z mnoha příkladů rozšíření úlohy napsaných pro Ant. Tyto přípony se instalují zkopírováním .sklenice
soubory do mravenců lib
adresář. Jakmile to provedete, lze tato rozšíření úloh vyvolat přímo v typické build.xml
soubor. Rozšíření WOProject umožňují WebObjects vývojáři, aby místo používání používali mravence při vytváření svých frameworků a aplikací Apple Xcode apartmá.
Antcontrib
[6] poskytuje kolekci úkolů, jako jsou podmíněné příkazy a operace s vlastnostmi, jakož i další užitečné úkoly.[7]
Ant-contrib.unkrig.de
[8] implementuje úkoly a typy pro networking, Houpačka uživatelská rozhraní, JSON zpracování a další.
Existují další rozšíření úloh Nezbytně, .NET Framework, EJB a manipulace se souborovým systémem.[9]
Příklad
Níže je uveden ukázka build.xml
soubor pro jednoduchou aplikaci Java „Hello, world“. Definuje čtyři cíle - čistý
, hadry
, kompilovat
a sklenice
, z nichž každý má přidružený popis. The sklenice
seznam cílů kompilovat
cíl jako závislost. To říká Antovi, že než bude moci spustit sklenice
cíl musí nejprve dokončit kompilovat
cílová.
<?xml version="1.0"?> jméno ="Ahoj" výchozí ="kompilovat"> jméno ="čistý" description ="odebrat mezilehlé soubory"> dir ="třídy"/> </target> jméno ="hadry" záleží ="čistý" description ="odstranit všechny soubory artefaktů"> soubor =„ahoj.jar“/> </target> jméno ="kompilovat" description ="zkompilovat zdrojový kód Java do souborů třídy"> dir ="třídy"/> srcdir ="." destdir ="třídy"/> </target> jméno ="sklenice" záleží ="kompilovat" description =„create a Jar file for the application“> destfile =„ahoj.jar“> dir ="třídy" zahrnuje ="**/*.třída"/> <manifest> jméno ="Hlavní třída" hodnota =„HelloProgram“/> </manifest> </jar> </target></project>
V každém cíli jsou akce, které musí Ant podniknout k vytvoření tohoto cíle; jsou prováděny pomocí vestavěných úkolů. Například postavit kompilovat
target Ant musí nejprve vytvořit adresář s názvem třídy
(což Ant provede, pouze pokud ještě neexistuje) a poté vyvolá kompilátor Java. Použité úkoly proto jsou mkdir
a javac
. Provádějí podobný úkol jako nástroje příkazového řádku se stejným názvem.
Jiná úloha použitá v tomto příkladu je pojmenována sklenice
:
destfile =„ahoj.jar“>
Tato úloha Ant má stejný název jako běžný obslužný program příkazového řádku Java, JAR, ale ve skutečnosti jde o volání integrované podpory souborů JAR / ZIP programu Ant. Tento detail není relevantní pro většinu koncových uživatelů, kteří právě získají požadovaný soubor JAR se soubory, o které požádali.
Mnoho úkolů Ant deleguje svou práci na externí programy, ať už nativní nebo Java. Používají vlastní mravence <exec>
a <java>
úkoly pro nastavení příkazových řádků a zpracování všech podrobností mapování od informací v souboru sestavení po argumenty programu a interpretaci návratové hodnoty. Uživatelé mohou vidět, které úkoly to dělají (např. <csv>
, <signjar>
, <chmod>
, <rpm>
), pokusem o provedení úlohy v systému bez základního programu na cestě nebo bez nainstalované plné sady Java Development Kit (JDK).
Přenosnost
Jedním z hlavních cílů Antu bylo být přenositelnější než Make. V Make jsou akce potřebné k vytvoření cíle specifikovány jako specifické pro platformu skořápka příkazy, zatímco Ant poskytuje velké množství integrovaných funkcí, které jsou navrženy tak, aby se chovaly stejně na všech platformách. Například ve vzorku build.xml
soubor výše, čistý cíl vymaže třídy
adresář a vše v něm. V Makefile by se to obvykle dělo pomocí příkazu:
rm -rf třídy /
rm
je Unix -specifický příkaz není k dispozici v některých jiných prostředích. Microsoft Windows například použije:
třídy rmdir / S / Q
V souboru Ant build stejného cíle by bylo dosaženo pomocí vestavěného příkazu:
dir ="třídy"/>
Ant dále nerozlišuje mezi lomítkem a lomítkem pro adresáře a středníkem nebo dvojtečkou pro oddělovače cest. Každý převede na symbol odpovídající platformě, na které se provádí.
Omezení
Tento článek je Kritika nebo Kontroverze sekce může ohrozit článek neutrální hledisko subjektu.Září 2011) ( |
Tato sekce případně obsahuje původní výzkum.Září 2011) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
- Ant build soubory, které jsou zapsány XML, mohou být složité a podrobné, protože jsou hierarchické, částečně uspořádané a všudypřítomně propojené. Tato složitost může být překážkou učení. Soubory sestavení velkých nebo složitých projektů se mohou stát nespravedlivě velké. Dobrý design a modularizace souborů sestavení může zlepšit čitelnost, ale nemusí nutně zmenšit velikost. Další nástroje pro sestavení, například Gradle nebo Maven, používejte výstižnější skripty na úkor obecnosti a flexibility.
- Mnoho ze starších úkolů - ty základní, které se používají každý den, jako např
<javac>
,<exec>
a<java>
—Použijte výchozí hodnoty pro možnosti, které nejsou konzistentní s novějšími verzemi úkolů. Změna těchto výchozích hodnot by narušila stávající skripty Ant. - Při rozšiřování vlastností v řetězci nebo textovém prvku nedefinované vlastnosti nejsou vyvolány jako chyba, ale ponechány jako nerozbalený odkaz (např.
$ {unassigned.property}
). - Ant má omezená pravidla pro zpracování chyb.
- Líné vyhodnocení vlastnosti není podporováno. Například při práci v Antcontrib
<for>
smyčka, vlastnost nelze přehodnotit pro podhodnotu, která může být součástí iterace. (Některá rozšíření třetích stran toto řešení usnadňují; sady úloh řízení toku AntXtras zajišťují předefinování kurzoru pro smyčky.) - V makefiles může být jakékoli pravidlo pro vytvoření jednoho typu souboru z jiného zapsáno vloženo do makefile. Jeden může například transformovat dokument do jiného formátu pomocí pravidel k provedení jiného nástroje. Vytvoření podobné úlohy v Ant je složitější: samostatná úloha musí být napsána v Javě a zahrnuta do souboru Ant build, aby bylo možné zpracovat stejný typ funkcí. Toto oddělení však může zlepšit čitelnost skriptu Ant tím, že skryje některé podrobnosti o způsobu provádění úkolu na různých platformách.
Existují rozšíření Ant Ant-party (tzv protijedi), které poskytují většinu chybějících funkcí. Také Zatmění integrované vývojové prostředí (IDE) může vytvářet a spouštět skripty Ant, zatímco NetBeans IDE používá Ant pro svůj interní systém sestavení. Protože oba tyto IDE jsou velmi populární vývojové platformy, mohou významně zjednodušit používání Ant. (Jako bonus lze Ant skripty generované NetBeans použít mimo toto IDE jako samostatné skripty.)
Viz také
- Vytvářejte automatizaci
- Apache Jelly, nástroj pro přeměnu XML na spustitelný kód
- Apache Ivy, správce závislostí, který se úzce integruje s Ant, dílčím projektem Ant
- Apache Maven, nástroj pro správu projektů a automatizaci sestavení primárně pro Javu
- Nant „Nástroj podobný mravenci zaměřený spíše na prostředí .NET Framework než na Javu
- Gradle, nástroj pro vytváření JVM vytvořený s Groovy
Reference
- ^ "Novinky projektu Apache Ant". Citováno 5. září 2019.
- ^ „Proč tomu říkáte Mravenec? - Časté dotazy k Apache Ant“.
- ^ MacNeill, Conor. „Raná historie vývoje mravenců“.
- ^ Wiley (2002). Nástroje Java pro programování eXtreme. p. 76.
- ^ „WOProject-Ant - WOProject / WOLips - Confluence“. Archivovány od originál dne 8. 1. 2009.
- ^ „Ant-Contrib“.
- ^ „Úkoly Ant-Contrib“.
- ^ „ant-contrib.unkrig.de“.
- ^ "Přehled úkolů Ant".
Další čtení
- Loughran, Steve; Hatcher, Erik (12. července 2007). Mravenec v akci (2. vyd.). Manning Publications. p. 600. ISBN 978-1-932394-80-1.
- Holzner, Steven (13. dubna 2005). Ant - Definitivní průvodce (2. vyd.). O'Reilly Media. p. 334. ISBN 978-0-596-00609-9.
- Moodie, Matthew (16. listopadu 2005). Pro Apache Ant (1. vyd.). Apress. str.360. ISBN 978-1-59059-559-6.
- Bell, Alexis T. (7. července 2005). ANT Java Notes: Accelerated Intro Guide to the Java ANT Build Tool (1. vyd.). Publikace Virtualbookworm.com. p. 268. ISBN 978-1-58939-738-5.
- Hatcher, Erik; Loughran, Steve (srpen 2002). Vývoj Java s Ant (1. vyd.). Manning Publications. str.672. ISBN 978-1-930110-58-8.
- Niemeyer, Glenn; Poteet, Jeremy (29. května 2003). Extrémní programování s Ant: Vytváření a nasazování aplikací Java pomocí JSP, EJB, XSLT, XDoclet a JUnit (1. vyd.). Publikace SAMS. p. 456. ISBN 978-0-672-32562-5.
- Williamson, Alan (1. listopadu 2002). Ant - Příručka pro vývojáře (1. vyd.). Publikace SAMS. p. 456. ISBN 978-0-672-32426-0.
- Matzke, Bernd (září 2003). ANT: Nástroj Java Build v praxi (1. vyd.). Charles River Media. str.280. ISBN 978-1-58450-248-7.