Per compilare e successivamente  distribuire un progetto (nel nostro esempio una WebApplication) si può utilizzare ANT come “motore” di compilazione e distribuizione. Personalmente mi piace utilizzare ANT internamente al tool di sviluppo di eclipse. (per completezza rimando alla guida sul plugin eclipse Link >>)

Il file che andiamo viene utilizzato per una normale web-application e permette di deployare all’interno di un application server locale l’intero progetto.

L’unica variabile da definire è la seguente tomcatdir_prp che dovrà puntare alla cartella dove è installato il web server. (es: C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-6.0.35).

Il file Build.xml deve essere inserito diretttamente nella root di progetto.

La prima parte del file inizializza le variabili.

<?xml version="1.0"?>
<project name="NameProject" basedir="." default="cmp">
<property name="name" value="NameJar"/>
<property name="project.dir" value=".." />
<property name="tomcatdir" location="${tomcatdir_prp}"/>
<property name="destdir" location="${tomcatdir}/webapps/News"/>
<property name="build" location="${basedir}/build"/>
<property name="common-lib" location="${tomcatdir}/lib"/>
<property name="webapp-lib" location="${basedir}/WebContent/WEB-INF/lib"/>
<property name="ext-lib" location="${basedir}/ext-lib"/>
<property name="webapp-classes" location="${basedir}/src"/>

il target con id=”jars” inizializza le librerie utilizzare per compilare il progetto

<path id="jars">
   <fileset dir="${webapp-lib}">
      <include name="*.jar"/>
   </fileset>
   <fileset dir="${common-lib}">
      <includ e name="servlet*.jar"/>
      </fileset>
   <pathelement path="${build.dir}"/>
</path>

Il target id=”init” ripulisce tutte le cartelle di progetto per creare i jar e il progetto in modo pulito

<target name="init">
   <tstamp>
      <format property="bckts" pattern="yyyyMMdd-HHmmss"/>
   </tstamp>
   <delete dir="${build}"/>
   <delete dir="${basedir}/appjar"/>
</target>

il target con name=”cmp” compila tutte le classi java e le mette a disposizione per la creazione successiva dei jar

<target name="cmp" depends="init" description="Compile main source tree java files">
   <mkdir dir="${build}"/>
   <javac destdir="${build}" source="1.6" target="1.6" debug="true" deprecation="false" failonerror="true" includeantruntime="false">
      <src path="src"/>
        <classpath refid="jars"/>
   </javac>
</target>
<target name="deploy-local-static" depends="init">
   <copy todir="${destdir}" includeEmptyDirs="false" verbose="true">
      <fileset dir="${basedir}/WebContent" excludes="**/*.class"/>
   </copy>
   <delete dir="${destdir}/WEB-INF/classes"/>
</target>
<target name="appjar-local" depends="cmp">
<copy todir="${build}" verbose="true">
<fileset dir="${basedir}/config" excludes="**/*.java"/>
</copy>
<mkdir dir="${basedir}/appjar"/>
<zip destfile="${basedir}/appjar/${name}.jar">
<fileset dir="${build}"/>
</zip>
</target>
<target name="appjar-local-no-config" depends="cmp">
<mkdir dir="${basedir}/appjar"/>
<zip destfile="${basedir}/appjar/${name}.jar">
<fileset dir="${build}"/>
</zip>
</target>
<target name="appjar-dev" depends="cmp">
<copy todir="${build}" verbose="true">
<fileset dir="${basedir}/config-dev" excludes="**/*.java"/>
</copy>
<mkdir dir="${basedir}/appjar"/>
<zip destfile="${basedir}/appjar/${name}-dev.jar">
<fileset dir="${build}"/>
</zip>
</target>
<target name="appjar-prod" depends="cmp">
<copy todir="${build}" verbose="true">
<fileset dir="${basedir}/config-prod" excludes="**/*.java"/>
</copy>
<mkdir dir="${basedir}/appjar"/>
<zip destfile="${basedir}/appjar/${name}-prod.jar">
<fileset dir="${build}"/>
</zip>
</target>
<target name="deploy-local-jar" depends="appjar-local">
<copy todir="${webapp-lib}" file="${basedir}/appjar/${name}.jar" />
</target>
</project>
Categories: Informatica, Web

Comments are closed.