是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于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目录下。

Ant自动发布html工具Java ant打包web项目配置_Web




其次,查看tomcat上面部署的Web应用程序的目录结构。

Ant自动发布html工具Java ant打包web项目配置_java_02



  

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”

Ant自动发布html工具Java ant打包web项目配置_java_03

 

tomcat,运行浏览器访问http://localhost:8080/TestJSP/,效果图如下

Ant自动发布html工具Java ant打包web项目配置_java_04



三、后记

关于更多Ant,请访问http://ant.apache.org/manualdownload.cgi,获取官方文档。

下载示例程序:http://pan.baidu.com/s/1ntNwiST