使用Ant自动完成部署(1)

来源:互联网 发布:mysql full out join 编辑:程序博客网 时间:2024/06/11 18:03
 

4.8.3 使用Ant自动完成部署

在上一节中,我们介绍了将应用程序部署到服务器端容器中,往往要涉及到包括编译、复制文件以及创建目录在内的很多步骤。在完成类似的包含很多步骤的构建任务时,使用自动构建工具是最佳解决方案。例如,Ant就是能够完成此类构建任务的理想Java工具。在使用Ant的情况下,完成前面提到的部署GWT应用程序的所有步骤,可以减少为一个步骤。

Ant是一个命令行工具,它可以接受一个XML构建文件。这个构建文件中包含着构建目标和完成构建任务的步骤。而且,Ant可以支持多种多样的步骤,包括复制文件、创建目录和编译代码。此外,Ant系统也具有良好的扩展性,因此可以方便地开发一些新步骤或者增加其他开发者提供的步骤。

接下来,我们介绍如何通过Ant构建一个基于servlet容器运行的GWT应用程序。首先,需要验证已经安装了Ant,并且已经将它包含在了路径中。如果是,则在命令行中输入ant -version会得到类似如图4-50所示的结果。

 图4-50 验证Ant是否已经安装

如果你的机器中没有安装Ant,可以从http://ant.apache.org中下载它。在确认开发机器中已经安装了Ant之后,就要着手针对项目编写一个build.xml文件。在这里的例子中,要使用的build.xml文件如下所示:

<project default="deploy">
<property name="gwtpath" value="/Users/ryan/lib/gwt-mac-1.4.10"/>
<property name="gwtapipath" value="/Users/ryan/lib/gwt-google-apis-1.0.0"/>
<property name="targetdir" value="${basedir}/www/${app}"/>
<property name="wwwdir" value="${basedir}/www"/>
<property name="srcdir" value="${basedir}/src"/>
<property name="bindir" value="${basedir}/bin"/>
 <path id="classpath">
<pathelement location="${gwtapipath}/gwt-google-apis.jar"/>
<pathelement location="${gwtpath}/gwt-user.jar"/>
<pathelement location="${gwtpath}/gwt-dev-mac.jar"/>
<pathelement location="${srcdir}"/>
<pathelement location="${bindir}"/>
</path>
 <target name="compile-gwt">
<java classname="com.google.gwt.dev.GWTCompiler" fork="true">
<classpath refid="classpath"/>
<jvmarg value="-XstartOnFirstThread"/>
<arg value="-out"/>
<arg value="${wwwdir}"/>
<arg value="${app}"/>
</java>
</target>
 <target name="compile" depends="compile-gwt">
<mkdir dir="${targetdir}/WEB-INF/classes"/>
<javac srcdir="${srcdir}"
destdir="${targetdir}/WEB-INF/classes"
excludes="**/client/*.java">
<classpath refid="classpath"/>
</javac>
</target>
 <target name="deploy" depends="compile">
<mkdir dir="${targetdir}/WEB-INF/lib"/>
<copy todir="${targetdir}/WEB-INF/lib" file="${gwtpath}/gwt-servlet.jar"/>
<copy tofile="${targetdir}/WEB-INF/web.xml"
file="${basedir}/${app}.web.xml"/>
</target>
</project>