7
votes

Comment compiler un module sans un point d'entrée?

J'ai un module utilitaire pour GWT qui n'a pas d'interface utilisateur (par conséquent, il n'y a pas de classe qui hérite de com.google.gwt.core.client.entrypoint code>. Quand j'essaie de compiler ce module avec GWT 1.7.1, je reçois cette erreur:

[ERROR] Module has no entry points defined


2 commentaires

Mais vous avez besoin d'au moins une par application: est-ce couvert?


Ouais. J'ai un point d'entrée dans un autre module. Je suis juste enlevé comment je peux compiler un module sans EP.


5 Réponses :


4
votes

Non, vous n'avez pas besoin d'un point d'entrée. Voici un exemple de l'un de mes modules qui ne possède pas une: xxx

La réponse courte est que vous ne compilez pas le code dans les modules. GWT a juste besoin d'eux comme code source. Lorsque vous compilez votre module principal (celui avec le point d'entrée), il utilise la source à partir de tout autre modules que vous avez hérité dans votre fichier .gwt.xml pour compiler tout le projet.


1 commentaires

+1 Cela n'a pas résolu mon problème, mais m'a signalé dans la bonne direction.



0
votes

J'utilise le GWT-Maven-Plugin Maven2 Plugin pour compiler mon code. J'ai migré le code d'une ancienne version du Maven-GoogleWebBtToolKit2-Plugin Plugin. Pour l'ancien plugin, je devais spécifier quels modules étaient des points d'entrée, comme: xxx

pour le nouveau plugin, c'est xxx

car Le plugin n'a pas pu trouver quels modules compiler, il recherchent "* .gwt.xml" et les compila tous dans "Modules UI" (qui doivent avoir un point d'entrée).


0 commentaires

5
votes

Les pots utilitaires n'ont pas besoin d'être compilés par GWT.

Si vous souhaitez simplement réutiliser cela comme une bibliothèque dans d'autres applications GWT, il vous suffit de jar les fichiers .Class et .java dans un pot et assurez-vous que vous avez un .gwt.xml qui dit où la source du client est. Si vous suivez les conventions (classes clientes dans le client), vous pouvez vous en tirer simplement sinon vous devez spécifier une balise pour le package client

Assurez-vous que vous héritez de cela .gwt.xml dans les projets où vous souhaitez compiler un point d'entrée.


1 commentaires

La chose agaçante est que si vous utilisez accidentellement un code non disponible dans le client GWT, il ne provoquera pas d'erreur avant d'essayer de la compiler dans l'application complète. Ainsi, vous pouvez produire des pots d'utilité, comme vous les appelez, qui ne sont pas réellement valables pour une utilisation par GWT. Y a-t-il un moyen autour de cela?



0
votes

Nous avons un module d'utilitaires, qui construit et gère des éléments d'interface utilisateur courants et un tas de tâches communes JavaScript / Json.

On dirait que ce que nous avons fait (a également migré de la plugin TOTSP au plugin CODEHAUS quelque part sur la ligne) consistait à inclure un point d'entrée dans le module UTIL; C'était juste vide. (Cela inclut le commentaire «No-Op intentionnel»).

Puis le POM fait simplement référence à la chose comme une dépendance.


0 commentaires

0
votes

Si vous utilisez Eclipse GWT Plugin, supprimez simplement le module sans un débardeur de la liste de modules qui apparaît juste avant de compiler.


0 commentaires