b'\n_START_ARTICLE_\nApache Ant\n_START_SECTION_\nFitxer d\'exemple build.xml\n_START_PARAGRAPH_\nA continuaci\xc3\xb3 es mostra un fitxer d\'exemple (build.xml) per a una aplicaci\xc3\xb3 "Hola m\xc3\xb3n" en Java. El fitxer defineix tres objectius (targets) - clean, compile i jar, cadascun dels quals t\xc3\xa9 una descripci\xc3\xb3 associada. L\'objectiu jar llista l\'objectiu compile com a depend\xc3\xa8ncia. Aix\xc3\xb2 li diu a Ant que, abans de comen\xc3\xa7ar l\'objectiu jar, ha de completar l\'objectiu compile._NEWLINE_Dintre de cada objectiu hi han les accions que ha de prendre Ant per a construir l\'objectiu. Per exemple, per a construir l\'objectiu compile, Ant primer ha de crear un directori anomenat classes (Ant nom\xc3\xa9s ho far\xc3\xa0 si aquest no existeix pr\xc3\xa8viament) i despr\xc3\xa9s cridar al compilador de Java._NEWLINE_<?xml version="1.0"?><project name="Hello" default="compile">_NEWLINE_    <target name="clean" description="remove intermediate files">_NEWLINE_        <delete dir="classes"/>_NEWLINE_    </target>_NEWLINE_    <target name="clobber" depends="clean" description="remove all artifact files">_NEWLINE_        <delete file="hello.jar"/>_NEWLINE_    </target>_NEWLINE_    <target name="compile" description="compile the Java source code to class files">_NEWLINE_        <mkdir dir="classes"/>_NEWLINE_        <javac srcdir="." destdir="classes"/>_NEWLINE_    </target>_NEWLINE_    <target name="jar" depends="compile" description="create a Jar file for the application">_NEWLINE_        <jar destfile="hello.jar">_NEWLINE_            <fileset dir="classes" includes="**/*.class"/>_NEWLINE_            <manifest>_NEWLINE_                <attribute name="Main-Class" value="HelloProgram"/>_NEWLINE_            </manifest>_NEWLINE_        </jar>_NEWLINE_    </target></project>\n_START_SECTION_\nPortabilitat\n_START_PARAGRAPH_\nUn dels primers objectius d\'Ant va ser solucionar els problemes de portabilitat de Make. En un Makefile les accions necess\xc3\xa0ries per a crear un objectiu s\'especifiquen com ordres d\'int\xc3\xa8rpret de comandes que s\xc3\xb3n espec\xc3\xadfics de la plataforma, normalment un shell d\'Unix. Ant resol aquest problema proveint una gran quantitat de funcionalitats per ell mateix, que poden garantir que romandran (gaireb\xc3\xa9) id\xc3\xa8ntiques en totes les plataformes._NEWLINE_Per exemple, en l\'exemple build.xml anterior, l\'objectiu (target) clean esborra el directori classes i tot el seu contingut. En un Makefile aix\xc3\xb2 normalment es faria amb l\'ordre:_NEWLINE_rm -rf classes/_NEWLINE_rm \xc3\xa9s una ordre espec\xc3\xadfica de Unix que probablement no estar\xc3\xa0 disponible si el Makefile s\'utilitza en un entorn no Unix com Microsoft Windows. En un fitxer de construcci\xc3\xb3 Ant es pot aconseguir el mateix utilitzant una ordre pr\xc3\xb2pia:_NEWLINE_<delete dir="classes"/>_NEWLINE_Una discrep\xc3\xa0ncia comuna entre diferents plataformes \xc3\xa9s la manera que les rutes de directoris s\'especifiquen. Unix usa la barra (/) per a delimitar els components d\'una ruta, mentre que Windows utilitza la barra invertida (\\). Els fitxers de Ant permeten a l\'autor triar la seva convenci\xc3\xb3 favorita, barres o barres invertides per a directoris, comas o punt i coma per a separar rutes. Ant ho converteix tot al format apropiat per a la plataforma utilitzada.\n_START_SECTION_\nHist\xc3\xb2ria\n_START_PARAGRAPH_\nAnt va ser creat per James Duncan Davidson mentre realitzava la transformaci\xc3\xb3 d\'un projecte de Sun Microsystems en codi obert (concretament la implementaci\xc3\xb3 de Servlets i JSP de Sun que despr\xc3\xa9s es diria Apache Tomcat). En un entorn tancat Make funcionava correctament sota la plataforma Solaris, per\xc3\xb2 per a l\'entorn de codi obert, on no era possible determinar la plataforma sota la qual s\'anava a compilar, era necess\xc3\xa0ria una altra forma de treballar. Aix\xc3\xad va n\xc3\xa9ixer Ant com un simple int\xc3\xa8rpret que agafava un arxiu XML per a compilar Tomcat independentment de la plataforma sobre la qual operava. A partir d\'aquest punt l\'eina va anar adoptant noves funcionalitats i actualment \xc3\xa9s un est\xc3\xa0ndard en el m\xc3\xb3n Java.'