2009-11-27 10 views
6

que tienen un módulo de utilidad para GWT que no tiene una interfaz de usuario (por lo tanto, no hay una clase que hereda de com.google.gwt.core.client.EntryPoint Cuando intento compilar este módulo con GWT 1.7.1, me sale este error:¿Cómo compilo un módulo sin EntryPoint? .

[ERROR] Module has no entry points defined 

¿Cómo me deshago de este error? ¿realmente tengo que definir un punto de entrada falsa? ¿Cómo Google nunca compilar sus propios módulos de servicios públicos ???

+0

pero necesita al menos una por cada aplicación: ¿está esto cubierto? – jldupont

+0

Sí. Tengo un punto de entrada en otro módulo. Estoy perplejo de cómo puedo compilar un módulo sin EP. –

Respuesta

0

Estoy usando el complemento Maven2 gwt-maven-plugin para compilar mi código. Migré el código de una versión anterior del complemento maven-googlewebtoolkit2-plugin. Para el plugin antiguo, que tenía que especificar qué módulos eran los puntos de entrada de este modo:

   <compileTargets> 
        <param>com.project.module.Module</param> 
       </compileTargets> 

para el nuevo plugin, es

   <module>com.project.module.Module</module> 

Desde el plugin no pudo encontrar los módulos que desea compilar, se buscar "* .gwt.xml" y compilar todos ellos en "módulos de UI" (que debe tener un punto de entrada).

3

n que no es necesario un EntryPoint. a continuación se un ejemplo de uno de mis módulos que no tiene uno:

<?xml version="1.0" encoding="UTF-8"?> 
<module> 
    <source path="grid" /> 
    <inherits name="com.google.gwt.user.User"/> 
</module> 

La respuesta corta es que no compila código en los módulos. GWT solo los necesita como código fuente. Cuando compila su módulo principal (el que tiene el punto de entrada) utiliza la fuente de cualquier otro módulo que haya heredado en su archivo .gwt.xml para compilar todo el proyecto.

+0

+1 Eso no solucionó mi problema, pero me indicó la dirección correcta. –

5

No es necesario que GWT compile los recipientes de la utilidad.

Si solo desea reutilizar esto como una biblioteca en otras aplicaciones GWT, solo tiene que extraer los archivos .class y .java en un contenedor y asegurarse de tener un archivo .gwt.xml que indique dónde se encuentra el cliente la fuente es Si se siguen las convenciones (clases de cliente en cliente), entonces usted puede conseguir lejos con sólo otra manera es necesario especificar una etiqueta para el paquete de cliente

A continuación, asegúrese de que usted hereda esta .gwt.xml en los proyectos en los que desea compilar un punto de entrada.

+0

+1 para la explicación exacta. –

+1

Lo más molesto es que si accidentalmente utiliza un código que no está disponible en el cliente GWT, no causará un error hasta que intente compilarlo en la aplicación completa. Por lo tanto, puede producir jarras de utilidad, como las llama, que en realidad no son válidas para el uso de GWT. ¿Hay alguna forma de evitar eso? – Shannon

0

Tenemos un módulo de utilidades, que construye & maneja algunos elementos de IU comunes, y un conjunto de tareas comunes de javascript/json.

Parece que lo que hicimos (también migramos desde el plugin totsp al plugin codehaus en algún punto de la línea) fue incluir un punto de entrada en el módulo util; solo estaba vacío. (Incluye el comentario "Intentional no-op").

Luego, el pom solo se refiere a la cosa como una dependencia.

0

Si usa el plugin eclipse GWT solo elimine el módulo sin un EntryPoint de la lista de módulos que aparece justo antes de compilar.

Cuestiones relacionadas