编译打包的充分必要条件:所有路径均以build文件所在目录为根的相对路径
1、有build.xml文件,名称任意
2、在build所在目录创建一个用于打包的war目录
3、在这个war目录下创建WEB-INF/lib目录
[mkdir] Created dir: E:/work/javaenv/eclipse/workspace/Showcase/war/WEB-INF/lib
4、在这个war目录下创建/WEB-INF/classes目录
[mkdir] Created dir: E:/work/javaenv/eclipse/workspace/Showcase/war/WEB-INF/classes
5、将所需的gwt的几个jar包复制到WEB-INF/lib目录
[copy] Copying 1 file to E:/work/javaenv/eclipse/workspace/Showcase/war/WEB-INF/lib
6、配置编译所需的classpath
<path id="project.class.path">
<pathelement location="war/WEB-INF/classes"/>
<pathelement location="${gwt.sdk}/gwt-user.jar"/>
<fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
<fileset dir="war/WEB-INF/lib" includes="**/*.jar"/>
</path>
7、编译,将java编译为class并将class复制到目标路径
8、编译,将class编译为js
9、打war包
10、清除临时文件
自定义的build工程文件 红色字体要根据不同工程而变化
<?xml version="1.0" encoding="utf-8" ?>
<!-- initalization -->
<project name="Showcase" default="flow" basedir=".">
<property name="gwt.args" value="" />
<property name="gwt.sdk" location="." /><!-- 几个jar相对于build文件的相对路径-->
<path id="project.class.path"> <!-- 注意这里的classpath是先定义,后面才创建 这一部分不用改-->
<pathelement location="war/WEB-INF/classes"/>
<pathelement location="${gwt.sdk}/gwt-user.jar"/>
<fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
<fileset dir="war/WEB-INF/lib" includes="**/*.jar"/>
</path>
<!-- _________________main flow__________________________ -->
<target name= "flow" depends="prepare,javac,gwtc,war,clean"/>
<!-- _________________body begin__________________________ -->
<!-- prepare -->
<target name="prepare">
<mkdir dir="war/WEB-INF/lib" />
<mkdir dir="war/WEB-INF/classes"/>
<copy todir="war/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet.jar" />
</target>
<!-- compile java to class -->
<target name="javac" depends="prepare" >
<javac srcdir="src" includes="**" encoding="utf-8"
destdir="war/WEB-INF/classes"
source="1.6" target="1.6" nowarn="true"
debug="true" debuglevel="lines,vars,source">
<classpath refid="project.class.path"/>
</javac>
<copy todir="war/WEB-INF/classes">
<fileset dir="src" excludes="**/*.java"/>
</copy>
</target>
<!-- compile class to js -->
<target name="gwtc" depends="javac" >
<java failοnerrοr="true" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="src"/>
<path refid="project.class.path"/>
</classpath>
<jvmarg value="-Xmx256M"/>
<arg line="${gwt.args}"/>
<arg value="com.google.gwt.sample.showcase.Showcase"/><!-- 入口程序-->
</java>
</target>
<!-- war -->
<target name="war" depends="gwtc" >
<zip destfile="Showcase.war