Ant Template file to build a Java Project

Here’s a Apache Ant template file , best use to start a project from scratch.

File : build.xml


<project name="ProjectName" default="dist" basedir=".">
    <description>
        Project Description
    </description>
	
  <!-- set global properties for this build -->
  <property name="projectName" value="ProjectName"/>
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>
  <property name="webcontent"  location="WebContent"/>

  <target name="init">
    	<!-- Create the time stamp -->
   	 <tstamp/>
    	<!-- Create the build directory structure used by compile -->
    	<mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init"
  	description="compile the source " >
    	<!-- Compile the java code from ${src} into ${build} -->
   	<javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile"
  	description="generate the distribution" >
    
  	<!-- Create the distribution directory -->
    	<mkdir dir="${dist}/lib"/>

    	<!-- Put everything in ${build} into the {$projectName}-${DSTAMP}.jar file -->
    	<jar jarfile="${dist}/lib/${projectName}-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="war" depends="compile"
  	description="generate the distribution war" >
	    
	<!-- Create the war distribution directory -->
  	<mkdir dir="${dist}/war"/>
    
  	<!-- Follow standard WAR structure -->
  	<copydir dest="${dist}/war/build/WEB-INF/" src="${webcontent}/WEB-INF/" />
  	<copydir dest="${dist}/war/build/WEB-INF/classes/" src="${build}" />
  		
	<jar jarfile="${dist}/war/${projectName}-${DSTAMP}.war" basedir="${dist}/war/build/"/>
  </target>

  <target name="clean"
    	description="clean up" >
  	
    	<!-- Delete the ${build} and ${dist} directory trees -->
    	<delete dir="${build}"/>
    	<delete dir="${dist}"/>
  </target>
</project>

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

Leave a Reply

avatar
newest oldest most voted
trackback
Year 13 Week 43 | Collecting The Pieces

[…] ?????¬†http://www.mkyong.com/ant/ant-template-file-to-build-a-java-project/ […]

A B
Guest
A B
Do you have an example of using JDK 6 style classpath with ANT. Or alternately, How can I translate a String as below ( with the … representing a longer string / list ) [echo] websphere.libs.convert: C:\Software\WAS85\Scheduler\*;C:\Software\WAS85\UDDIReg\*;C:\Software\WAS85\bin\*;C:\Software\WAS85\configuration\*;…C:\Software\WAS85\web\*;C:\Software\WAS85\wlp to the below format using ANT <path id="websphere.classpath"> <pathelement location="C:\Software\WAS85\Scheduler\*" /> <pathelement location="C:\Software\WAS85\UDDIReg\*" /> <pathelement location="C:\Software\WAS85\bin\*" /> <pathelement location="C:\Software\WAS85\configuration\*" /> ...... <pathelement location="C:\Software\WAS85\web\*" /> <pathelement location="C:\Software\WAS85\wlp\*" /> </path> which can then be used in <path id="compile.classpath"> <path refid="ext.classpath"/> <path refid="websphere.classpath"/> <path refid="module.compile.classpath"/> </path> The last element in the conversion also needs to add the ‘\*’ part which is not in the original string.… Read more »
MrBCut
Guest
MrBCut

thank you good sir. I’ve been following you on Twitter :) keep up the good work and thanks for helping me so much!

shiva
Guest
shiva

Hi Yong,

how do i add jar to ear file using fileset tag /ant build?
i am not able to add jar file from build directory.

Thanks in advance