mai
2009
Désarmons tout de suite les fanboys de google, je n’utilise pas le mot critique dans son sens de reproche. Je veux seulement faire état de ce que j’ai apprécié ou non dans ce plugin.
N’hésitez pas à exprimer votre opinion dans les commentaires, surtout si vous êtes en désaccord ;o)
S’il est vrai que parfois, certaines choses sont fait « à la va vite » et pourraient être améliorées, d’autre fois, les choix du développeur ne se comprennent qu’après coup lorsqu’on découvre une contrainte insoupçonnée.
Commençons par un petit tour et voyons ce qu’il apporte à eclipse …
La première chose visible, ce sont les 3 nouvelles icones placées dans la barre de menu :
- La première vous permet de créer un projet d’application web (GWT et/ou GAE)
- La deuxième de compiler un projet GWT
- La troisième de déployer un projet GAE
Remarquons que le plugin sert à la fois pour GWT et GAE, qu’ils soient utilisés conjointement ou non. Si cela peut déstatibiliser ceux qui n’utilise que GWT ou que GAE, cela reste cohérent car ces deux technos sont complémentaires. De plus, Google permet ainsi d’améliorer la visibilité de ses offres. Des développeurs GWT ont peut être découvert GAE à cette occasion et inversement.
Avant de se pencher plus en avant sur chacune d’elles, regardons du côté des paramètres généraux
1) Préférences (Window / Préférences / Google)
Il y a juste :
- Une case à cocher indiquant si vous voulez être informé des mises à jours
- Le paramétrage du chemin du kit de développement (SDK) du App Engine
- Le paramétrage du chemin du kit de développement (SDK) du Web Toolkit
2) Créer un projet d’application web Google
Les données classiques et deux liens pointant sur le paramétrage des chemins des SDKs évoqués en 1)
Remarquons que vous ne pouvez pas utiliser de ‘-‘ dans le nom de projet. Cela peut paraître un détail mais je ne comprend pas pourquoi c’est interdit ???
J’ai déjà créé des projets GWT/GAE en dehors du plugin avec des – et cela ne pose pas de problème.
Et si on peut « feinter » après coup en renommant le projet eclipse, vous ne pouvez plus utiliser le plugin pour déployer et ça c’est pas terrible !
Remarquons également que le projet créé n’est pas un projet web dynamique au sens eclipse et je trouve ça un peu embêtant !
Dès lors, la perspective Java EE n’a aucune valeur ajoutée pour un projet Google !
Et même si je ne l’utilise pas (car je n’aime pas sa présentation dépliée des packages même lorsqu’on a choisi l’option hierarchique), cela a un autre défaut selon moi.
Le gros avantage d’un projet web dynamique au sens eclipse, c’est d’avoir simplement à déposer une librairie dans le dossier WEB-INF/lib pour qu’elle soit automatiquement dans le classpath. Rien de tel avec la webapp google, il faut à la fois la mettre dans le dossier WEB-INF/lib et l’ajouter au classpath. Je pourrai essayé d’ajouter une nature web à mon projet google et ajouter le conteneur web dans mon classpath mais après l’échec de ma feinte précédente, je suis refroidi.
Ceci dit, ce choix est peut être compréhensible si on considère que google a peut être voulu que son plugin fonctionne sur un simple eclipse Java.
Et puis non, je pense qu’ils pouvaient faire autrement. Eclipse Java ou Java EE restent au fond des eclipses (il suffisait de rajouter les fonctionnalités manquantes) et un classpath (où les entrées sont définies explicitement) pouvait sûrement être généré.
Un point à améliorer.
3) Compiler un projet GWT
Enfin quelque chose qui manquait à GWT. Là, c’est plus convivial et on peut changer la sortie de compilation facilement suivant que l’on debug (PRETTY) ou que l’on déploie (OBFUSCATED).
La seule petite critique que je ferai, c’est qu’on ne peut pas appeler l’entry point d’un module d’un autre projet (projet lié par eclipse au projet courant bien entendu) ou ajouter des arguments supplémentaires à la JVM (comme -Xss16M) car ceux que l’on voit, ce sont les paramètres du compilateur GWT.
Du coup, je ne l’utilise pas et je passe par un script Ant.
4) Déployer un projet GAE
Là encore, c’est rudimentaire mais pratique.
La deuxième fenêtre, c’est celle qui s’affiche quand vous cliquez sur le lien App Engine project settings… de la première.
Vous pouvez alors saisir l’identifiant de votre application GAE et son numéro de version.
La seule petite critique que je ferai, c’est qu’on est obligé de saisir son password à chaque fois.
Pour cette raison, je passe par un script Ant mais comme leur tâche Ant a également un défaut, je mixe les deux :
- Parce que leur wizard met en cache les identifiants, j’utilise la tâche ant pour faire mes déploiement car je n’ai alors plus rien à saisir
- Parce que leur tâche Ant ne prends pas en paramètres les identifiants, j’utilise le wizard pour les saisir à chaque fois qu’ils ont expirés du cache
Il est dommage que le plugin n’offre pas une option pour enregistrer nos identifiants GAE, et c’est d’autant plus incompréhensible qu’il les met bien quelque part dans un cache (où ?).
Il est également dommage que la tâche Ant ne les prends pas en paramètres (Pourquoi ce choix ?)
Je reconnais que c’est du détail car on n’est pas sensé déployer plusieurs fois d’affiler …
… sauf quand votre application fonctionne bien en local et pas en déploiement mais c’est une autre histoire.
Merci pour vos commentaires. Cela motive à continuer …
interessant cette serie de blogs. (enfin du vrai blog sur dvp )
faut que je teste le Gae avec Grails : depuis la version 1.1.1, il est compatible avec.
Oui, j’espère aussi.
Ce que j’aime dans google, c’est leur moteur à innover …
Vivement que google rachète oracle qui a racheté sun ! lol
on pourrait dire que je suis un fanboy google.
tes remarques sont tout à fait justifié, j’espère que dans une future mise à jour du plugin ces problèmes n’existeront plus.
merci d’avoir partagé ton expérience