gwt - ¿Cómo compilo un módulo sin EntryPoint?
entry-point (5)
Estoy usando el gwt-maven-plugin
Maven2 para compilar mi código. Migré el código de una versión maven-googlewebtoolkit2-plugin
plugin. Para el antiguo plugin, tuve que especificar qué módulos eran puntos de entrada como ese:
<compileTargets>
<param>com.project.module.Module</param>
</compileTargets>
Para el nuevo plugin, es
<module>com.project.module.Module</module>
Como el complemento no pudo encontrar qué módulos compilar, busca "* .gwt.xml" y los compiló en "módulos de UI" (que deben tener un punto de entrada).
Tengo un módulo de utilidad para GWT que no tiene una IU (por lo tanto, no existe una clase que herede de com.google.gwt.core.client.EntryPoint
. Cuando intento compilar este módulo con GWT 1.7.1, obtener este error:
[ERROR] Module has no entry points defined
¿Cómo me deshago de este error? ¿Realmente tengo que definir un punto de entrada ficticio? ¿Cómo compila Google alguna vez sus propios módulos de utilidad?
Los archivos de utilidad no necesitan ser compilados por GWT.
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 origen del cliente. Si sigue las convenciones (clases de cliente en el cliente), puede salirse con la suya, de lo contrario, debe especificar una etiqueta para el paquete del cliente.
Luego, asegúrese de heredar este .gwt.xml en los proyectos en los que desea compilar un punto de entrada.
No, no necesitas un EntryPoint. Aquí hay 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 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.
Si usa el complemento eclipse GWT, simplemente elimine el módulo sin un EntryPoint de la lista de módulos que aparece justo antes de compilar.
Tenemos un módulo de utilidades, que construye y maneja algunos elementos comunes de UI, 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").
Entonces el pom solo se refiere a la cosa como una dependencia.