我使用GWT已经有一段时间了,到目前为止,我只使用Eclipse插件来编译我的项目。由于新的需求,我需要(第一次)使用Ant构建来构建GWT项目。首先,我会说,我有2个模块,它们有一个入口点和2个其他的普通模块,这些模块只包含Java类(应该转换成JS),它们在我的工作空间中处于不同的项目中。
目前,我有一个GWT项目,它需要一个公共项目,而这个公共项目又需要DAL项目(当我说“需要”时,我的意思是它在Eclipse项目构建路径中如此定义)。在我的GWT项目中,我在适当的位置有一个common.gwt.xml和dal.gwt.xml文件,它们将这些文件定义为模块,而moduleEntryPoint.gwt.xml继承了这两个模块(以及其他模块)。当我目前使用GWTEclipse插件来编译所有东西时,一切都很好地工作。
但是,当我尝试用ant build模拟这个过程时,moduleEntryPoint的编译失败,因为编译器说它找不到属于dal模块或公共模块的类的源。
Ant构建代码非常基础,因为这是我的第一次尝试。
提前感谢您给予的帮助。
<path id="compile.classpath">
<fileset dir="${build.dir.WEB-INF.lib}">
<include name="**/*.jar" />
<include name="**/*.xml" />
</fileset>
<fileset dir="${ExternalLib.WebServer.dir}">
<include name="**/*.jar" />
<include name="**/*.xml" />
</fileset>
<fileset dir="${GWT.dir}">
<include name="**/*.jar" />
<include name="**/*.dll" />
</fileset>
</path>
<target name="clear_previous_war">
<delete dir="${build.dir}" />
<mkdir dir="${build.dir.WEB-INF.classes}"/>
<mkdir dir="${build.dir.WEB-INF.lib}"/>
<target name="build_common" >
<jar destfile="${build.dir.WEB-INF.lib}/${jar.common}"
basedir="${common.dir.build}"
includes="com/**"
excludes="**/.svn"
/>
</target>
<target name="build_dal" >
<jar destfile="${build.dir.WEB-INF.lib}/${jar.dal}"
basedir="${dal.dir.build}"
includes="com/**"
excludes="**/.svn"
/>
</target>
<target name="copy_additional_files" >
... Copies all required external jars to web-inf/lib
</target>
<target name="compile_web_classes" >
<javac srcdir="src" classpathref="compile.classpath"
destdir="${build.dir.WEB-INF.classes}"
source="1.6"/>
</target>
<target name="compile_gwt_button" description="GWT compile to JavaScript">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="${src.dir}" />
<path refid="compile.classpath" />
</classpath>
<jvmarg value="-Xmx256M" />
<arg value="com.myCompany.web.Button" />
</java>
</target>
<target name="deploy" description="Build web project">
<antcall target="clear_previous_war" />
<antcall target="build_common" />
<antcall target="build_dal" />
<antcall target="copy_additional_files" />
<antcall target="compile_web_classes" />
<antcall target="compile_gwt_button" />
</target>