Hello everybody,

Tomorrow we have an exam about J2EE with ant.
our teacher have give us a file, called 'build.xml' but he doesn't mentioned what it do...

I really hope someone could explain a bit more the following code because we have to know it for our exam....

Build.xml

Code:
<project name="moiracms" basedir="." default="main">
 
	<property file="build.properties" />
	<property name="src.dir"     value="src"/>
 
	<property name="build.dir"   value="build"/>
	<property name="classes.dir" value="${build.dir}/classes"/>
	<property name="jar.dir"     value="${build.dir}/package"/>
	<property name="lib.dir"	 value="lib" />
	<property name="descr.dir"	value="${build.dir}/descriptor" />
	<property name="html.dir"	 value="html" />
	<property name="tld.dir"	 value="tld" />
		
	<path id="classpath">
		<fileset dir="${lib.dir}" includes="*jar" />
		<fileset dir="${xdoclet.lib.dir}" includes="*jar" />
	</path>
	
	<target name="clean">
		<delete dir="${build.dir}"/>
		<delete dir="${src.dir}/interfaces" />
	</target>
	
	<target name="init" depends="clean">
		<taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask" classpathref="classpath"/>
		<taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="classpath" />
		<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="classpath" />
	</target>
 
	<target name="xdoclet" depends="init">
		<webdoclet destdir="${descr.dir}">
			<deploymentdescriptor servletspec="2.4"/>
			<fileset dir="${src.dir}" includes="**/*Servlet.java" />
		</webdoclet>
		<hibernatedoclet destdir="${descr.dir}">
			<fileset dir="${src.dir}" includes="**/*.java" />
			<hibernate version="3.0" />
			<hibernatecfg version="3.0"
			              jdbcUrl="jdbc:mysql://${mysql.server}:${mysql.port}/${mysql.dbase}"
						  dialect="org.hibernate.dialect.MySQLDialect"
						  driver="com.mysql.jdbc.Driver"
						  userName="${mysql.username}"
						  password="${mysql.password}" />
		</hibernatedoclet>
		<ejbdoclet destdir="${src.dir}">
			<fileset dir="${src.dir}" includes="**/*Bean.java" />
			<packagesubstitution packages="beans" substitutewith="interfaces" usefirst="true" />
			<localhomeinterface />
			<localinterface />
			<homeinterface />
			<remoteinterface />
			<deploymentdescriptor destdir="${descr.dir}" />
		</ejbdoclet>
	</target>
 
	<target name="compile" depends="xdoclet">
		<mkdir dir="${classes.dir}"/>
		<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
	</target>
 
	<target name="war" depends="compile">
		<mkdir dir="${jar.dir}" />
		<war destfile="${jar.dir}/${ant.project.name}.war" webxml="${descr.dir}/web.xml">
			<fileset dir="${html.dir}" includes="**/*" />
			<webinf dir="${tld.dir}" includes="c.tld" />
			<lib dir="${tld.dir}" includes="*.jar" />
		</war>
	</target>
	
	<target name="jar" depends="compile">
		<mkdir dir="${jar.dir}" />
		<jar destfile="${jar.dir}/${ant.project.name}.jar">
			<fileset dir="${classes.dir}" includes="**/*" />
			<fileset dir="${descr.dir}" includes="classes/*.hbm.xml" />
			<fileset dir="${descr.dir}" includes="hibernate.cfg.xml" />
			<metainf dir="${descr.dir}" includes="ejb-jar.xml" />
		</jar>
	</target>
	
	<target name="ear" depends="war,jar">
		<ear appxml="application.xml" destfile="${jar.dir}/${ant.project.name}.ear">
			<fileset dir="${jar.dir}">
			</fileset>
		</ear>
	</target>
		
	<target name="deploy" depends="ear">
		<copy file="${jar.dir}/${ant.project.name}.ear" todir="${jboss.deploy.dir}" />
	</target>
    
	<target name="main" depends="deploy" />
 
</project>
Kind regards,

Pieter