Basic EJB 3.0 Ant Build File

This is my basic ant build file for quick EJB 3.0 projects:

<?xml version="1.0"?>

<project name="ejb3-project" default="jar" basedir=".">

	<property environment="env" />
	<property name="src.dir" value="${basedir}/src/main" />
	<property name="src.resources" value="${basedir}/src/main/resources" />

	<!-- Set jboss.home and jboss.server here -->
	<property file="${user.home}/.ant.properties"/>

	<!-- Use JBOSS_HOME from environment if not defined in .ant.properties -->
	<property name="jboss.home" value="${env.JBOSS_HOME}" />

	<!-- Reasonable default if not set in .ant.properties. -->
	<property name="jboss.server" value="default"/>

	<property name="build.dir" value="${basedir}/target" />
	<property name="build.classes.dir" value="${build.dir}/classes" />
	<property name="jboss.base" value="${jboss.home}/server/${jboss.server}"/>
	<property name="deploy.dir" value="${jboss.base}/deploy"/>

	<path id="classpath">
		<fileset dir="${jboss.base}/lib">
			<include name="*.jar" />
		</fileset>
		<fileset dir="${deploy.dir}/ejb3.deployer">
			<include name="*.jar" />
		</fileset>
		<fileset dir="${deploy.dir}/jboss-aop-jdk50.deployer">
			<include name="*.jar" />
		</fileset>
		<fileset dir="${jboss.home}/lib">
			<include name="*.jar" />
		</fileset>
		<pathelement location="${build.classes.dir}" />
	</path>

	<property name="build.classpath" refid="classpath" />

	<target name="prepare">
		<mkdir dir="${build.dir}" />
		<mkdir dir="${build.classes.dir}" />
	</target>

	<target name="compile" depends="prepare">
		<javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="**">
			<classpath refid="classpath" />
		</javac>
	</target>

	<target name="jar" depends="compile">
		<jar jarfile="${build.dir}/${ant.project.name}.jar">
			<fileset dir="${build.classes.dir}">
				<include name="**/*.class" />
			</fileset>
			<fileset dir="${src.resources}/">
				<include name="META-INF/persistence.xml" />
			</fileset>
		</jar>
	</target>

	<target name="deploy" depends="jar">
		<copy file="${build.dir}/${ant.project.name}.jar" todir="${deploy.dir}" />
	</target>

	<target name="run.client" depends="deploy">
		<java classname="com.uberdose.Client" fork="yes" dir=".">
			<classpath refid="classpath" />
		</java>
	</target>

	<target name="clean.db">
		<delete dir="${jboss.base}/data/hypersonic" />
	</target>

	<target name="clean">
		<delete dir="${build.dir}" />
		<delete file="${deploy.dir}/${ant.project.name}.jar" />
	</target>

</project>

It’s taken from the EJB 3.0 book, 5th edition, with some minor tweaks. Yes, I know that this page probably looks ugly in most themes but I honestly don’t care. When you do copy and paste keep in mind to change the indentation, at least for the first line to get valid XML.

2 Responses to “Basic EJB 3.0 Ant Build File”

Leave a Reply


uberdose 2.0

L-l-look at you, hacker.