He estado usando GWT durante bastante tiempo y solo he usado el plugin de eclipse para compilar mis proyectos hasta el momento. Debido a un nuevo requisito, necesito usar una construcción ant (por primera vez) para construir un proyecto gwt. Primero diré que tengo 2 módulos que tienen un punto de entrada y otros 2 módulos comunes que solo contienen clases de Java (que deben traducirse a js) y se sientan en un proyecto diferente en mi espacio de trabajo.Problema con la compilación de un proyecto de gwt con ant
Actualmente tengo el proyecto GWT que requiere el proyecto Común, que a su vez requiere el proyecto DAL (cuando digo que requiero quiero decir que está así definido en la ruta de compilación del proyecto Eclipse). En mi proyecto de GWT tengo, en una ubicación adecuada, archivos Common.gwt.xml y DAL.gwt.xml que los definen como módulos y ModuleEntryPoint.gwt.xml hereda esos dos módulos (además de otros módulos). Cuando uso el plugin gwt eclipse para compilar todo, todo funciona bien.
Sin embargo, cuando traté de simular esto con la compilación Ant, la compilación de mi ModuleEntryPoint falla ya que el compilador dice que no puede encontrar fuentes para las clases que pertenecen al módulo DAL o al módulo Común.
El código de compilación de ant es muy básico, ya que este es mi primer intento.
Gracias de antemano por cualquier ayuda otorgada.
<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>
Muchas gracias pero creo que he descubierto el problema. En la tarea 'compile-gwt' no le di el camino a las fuentes de los módulos comunes (../Common/src etc) así que lo he agregado y funciona. Gracias. – Ittai