-
-
Save yogendra/10098220 to your computer and use it in GitHub Desktop.
Simple Ant Build Script for Eclipse Dynamic Web Project #java #ant #snippet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project basedir="." default="package" name="PROJECT_NAME"> | |
<!-- | |
This script assumes: | |
1) CATALINA_HOME environment variable points to tomcat's directory | |
2) Following Folder Structure | |
./ (project root) | |
|- src/ (project.src.dir - source folder) | |
|- build/ | |
| |- classes/ (project.classes.dir) | |
|- WebContent/ (project.web.dir) | |
| |- lib/ (project.lib.dir) | |
|- PROJECT_NAME.war (project.war) | |
3) JAVA_HOME is set and point to JDK 1.6 and above | |
--> | |
<property environment="env" /> | |
<property name="TOMCAT_HOME" value="${env.CATALINA_HOME}" /> | |
<property name="debuglevel" value="source,lines,vars" /> | |
<property name="target" value="1.6" /> | |
<property name="source" value="1.6" /> | |
<property name="project.name" value="${ant.project.name}" /> | |
<property name="project.web.dir" value="WebContent" /> | |
<property name="project.src.dir" value="src" /> | |
<property name="project.classes.dir" value="build/classes" /> | |
<property name="project.lib.dir" value="${project.web.dir}/WEB-INF/lib" /> | |
<property name="project.war" value="${project.name}.war" /> | |
<property name="project.runtime.lib" value="${TOMCAT_HOME}/lib" /> | |
<property name="project.deploy.location" value="${TOMCAT_HOME}/webapps" /> | |
<path id="classpath.runtime"> | |
<fileset dir="${project.runtime.lib}" includes="*.jar" /> | |
</path> | |
<path id="classpath.lib"> | |
<fileset dir="${project.lib.dir}" includes="*.jar" /> | |
</path> | |
<path id="project.classpath"> | |
<pathelement location="${project.classes.dir}" /> | |
<path refid="classpath.runtime" /> | |
<path refid="classpath.lib" /> | |
</path> | |
<target name="init"> | |
<mkdir dir="${project.classes.dir}" /> | |
<copy includeemptydirs="false" todir="${project.classes.dir}"> | |
<fileset dir="src"> | |
<exclude name="**/*.java" /> | |
</fileset> | |
</copy> | |
</target> | |
<target name="clean"> | |
<delete dir="${project.classes.dir}" /> | |
<delete dir="${project.war}" /> | |
</target> | |
<target depends="init" name="build" description="Compiling all java files in ${project.src.dir}"> | |
<echo message="${project.name}: ${ant.file}" /> | |
<javac debug="true" debuglevel="${debuglevel}" destdir="${project.classes.dir}" includeantruntime="false" source="${source}" target="${target}"> | |
<src path="src" /> | |
<classpath refid="project.classpath" /> | |
</javac> | |
</target> | |
<target depends="build" name="package" description="Packagign all files into ${project.war}"> | |
<war destfile="${project.war}" index="true" needxmlfile="fasle"> | |
<classes dir="${project.classes.dir}" /> | |
<lib dir="${project.lib.dir}" /> | |
<fileset dir="${project.web.dir}"> | |
<include name="**/*.*" /> | |
</fileset> | |
</war> | |
</target> | |
<target depends="package" name="deploy" description="Copying ${project.war} to ${project.deploy.location}"> | |
<copy file="${project.war}" todir="${project.deploy.location}" /> | |
</target> | |
</project> |
Line 41 says:
classoath
should be:
classpath
Good job.
Thanks. Updated this. Forgot about this gist completely!
Line 65
fasle > false
Thanks!
Thank you for the sample.
PS: I did following, because resulting war archive contained lib twice. because project.lib.dir was under project.web.dir
<target depends="build" name="package" description="Packagign all files into ${project.war}">
<war destfile="${project.war}" index="true" needxmlfile="fasle">
<classes dir="${project.classes.dir}" />
<lib dir="${project.lib.dir}" />
<fileset dir="${project.web.dir}">
<include name="**/*.*" />
<exclude name="WEB-INF/lib/**" /> <!-- Added this line -->
</fileset>
</war>
</target>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
There is a typo in line 44
should be
But then it works perfect =)