是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。默认情况下,它的buildfile(XML文件)名为build.xml。--来自百科
一、准备环境
首先确保机器上已经正确安装和配置Ant,一句话概括为解压Ant安装包,将ant的lib目录完整路径添加到环境变量classpath,将ant的bin目录完整路径添加到环境变量path中。
确保Tomcat以及JDK已经正确安装和配置,由于不是本文的重点,具体操作步骤可参考网络资料。
作者的Ant安装在E:\apache-ant-1.9.4,Tomcat安装在E:\apache-tomcat-7.0.32, JDK安装在C:\Program Files\Java\jdk1.6.0_10, JRE安装在C:\Program Files\Java\jre6。
二、将在Eclipse上开发好的Web应用程序利用Ant打包并发布
1)确定Ant需要执行哪些操作
首先,看看Eclipse开发的Web应用程序的目录结构,Java代码位于src目录下,Web文件位于WebContent目录下。
其次,查看tomcat上面部署的Web应用程序的目录结构。
WebContent目录下的文件发布后应该放在tomcat\webapp下的Web项目文件里面,而开发是src目录下的文件发布后应该放在tomcat\webapp下Web项目里面WEB-INF的子目录classes里面。
因此,对于项目名为TestJSP的具体的发布步骤如下:
1)新建Ant/TestJSP
2)新建Ant/TestJSP/src
3)将Eclipse 项目TestJSP子目录WebContent里面所有文件拷贝到Ant/TestJSP目录下
将Eclipse项目TestJSP子目录src里面的所有Java文件拷贝到Ant/TestJSP/src目录下
Note: 对于小型的Web应用也可以不拷贝java源代码到新的目录,而直接编译,但有时源代码在服务器机器上,需要ftp到本地,为了保待良好一致的习惯,建议先copy一份,再对副本进行编译。
4)使用Ant的Javac编译Ant/TestJSP/src/*.Java文件,将编译后的*.class文件放到Ant/TestJSP/WEB-INF/classed目录下
5)使用Ant的war打包TestJSP
6)使用Ant的copy拷贝war包到tomcat/webapp目录下
Note: 有时Web服务器和打包机器不同,需要使用Ant的ftp任务将War包传到服务器上。
Note: 作者的Web程序的路径为E:\workspace\TestJSP,为了提高Ant build文件的复用性,不在build.xml里面硬编码项目名称,而采用运行时带”-D”选项设置属性的方式来动态加载项目名称。
2)编辑Ant build文件
这里文件名为build.xml,这是Ant默认的build文件,当然也可以通过-f 或-buildfile 指定其他的build文件.
<?xml version="1.0" encoding="UTF-8"?>
<project name="${Name}" basedir="." default="publish">
<!—use Ant –Dname=TestJSP to run Ant, then ${Name} will get TestJSP-->
<property name="src" value="${basedir}/${Name}/src"/>
<property name="app" value="${basedir}/${Name}/WebContent" />
<property name="lib" value="${app}/WEB-INF/lib" />
<!—set property of project TestJSP related dir-->
<property name="antbuild" value="${basedir}/Ant" />
<property name="build.src" value="${antbuild}/${Name}/src" />
<property name="build.app" value="${antbuild}/${Name}" />
<property name="build.class" value="${antbuild}/${Name}/WEB-INF/classes"/>
<!—set property of Ant dir to build-->
<property name="j2eelib.dir" value="C:\Program Files\Java\jre6\lib" />
<property name="tomcat.dir" value="E:\apache-tomcat-7.0.32\webapps" />
<path id="classpath">
<fileset dir="${j2eelib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${lib}">
<include name="**/*.jar" />
</fileset>
</path>
<!—set classpath for javac task-->
<target name="init">
<mkdir dir="${antbuild}" />
<mkdir dir="${build.src}" />
<mkdir dir="${build.class}" />
<copy todir="${build.src}">
<fileset dir="${src}">
<include name="**/*.java" />
</fileset>
</copy>
<copy todir="${build.app}">
<fileset dir="${app}" />
</copy>
</target>
<!—mkdir and copy file-->
<target name="compile" depends="init">
<javac srcdir="${build.src}" destdir="${build.class}" >
<classpath refid="classpath" />
</javac>
<delete dir="${build.src}" />
</target>
<!—compile the java file and copy the class file-->
<target name="war" depends="compile">
<war destfile="${build.app}/${Name}.war" webxml="${build.app}/WEB-INF/web.xml">
<fileset dir="${build.app}"/>
</war>
</target>
<!—compress the project file to war file-->
<target name=”publish” depends=”war”>
<copy destdir=”${tomcat.dir}” >
<fileset dir=”${build.app}”>
<include name=”*.war” />
</fileset>
</copy>
</target>
<!—copy war file to tomcat-->
<target name="publish2" depends="war">
<ftp server="ftp.webserver.com" port="21"
remotedir="${tomcat.dir}" userid="ainet"
password="r00t" passive="yes"
depends="yes" binary="no">
<fileset dir="${build.app}">
<include name="*.war"/>
</fileset>
</ftp>
</target>
<!—sometimes we need ftp the war to webserver-->
</project>
3)运行Ant命令
Build.xml文件放在E:\workspace目录下,TestJSP项目文件也在E:\workspace目录下,在cmd窗口,跳转到E:\workspace目录下运行”Ant –Dname=TestJSP”
tomcat,运行浏览器访问http://localhost:8080/TestJSP/,效果图如下
三、后记
关于更多Ant,请访问http://ant.apache.org/manualdownload.cgi,获取官方文档。
下载示例程序:http://pan.baidu.com/s/1ntNwiST