Main Tutorials

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 Author

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

Comments

Subscribe
Notify of
3 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
shiva
6 years ago

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

A B
11 years ago

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.

Thaks in advance for your help

MrBCut
11 years ago

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