Professional Documents
Culture Documents
Sélectionner le module point d’entrée à compiler (en général, il n’y en a qu’un dans une application).
a. Options de sorties
Deux paramètres principaux, présents sur le formulaire de compilation proposés par Eclipse, sont à
prendre en compte lors de la compilation.
Log level
Comme toute compilation, elle se décompose en deux parties : la compilation du code et l’édition des
liens. Ce niveau de journalisation (le plus faible) nous permet de savoir combien de permutations sont
produites.
Des niveaux de journalisation plus élevés permettent d’avoir davantage d’informations. Par exemple, le
niveau Trace permet de retourner des informations plus détaillées sur la compilation :
Dans cet exemple, le compilateur prépare un ClientBundle (cf. chapitre Techniques avancées -
Ressources).
Sur cette configuration, nous avons le nom des permutations (strong name) et la taille de chacune
d’elles. De plus, nous voyons que l’éditeur de lien Standard est utilisé. Il existe plusieurs éditeurs de lien
fournis avec GWT mais le sujet ne sera pas abordé dans cet ouvrage.
Output style
Le second paramètre est le type de code JavaScript à produire. Nous pouvons définir :
obfuscated
pretty
detailed
Le principe est de permettre de fournir une permutation JavaScript sous une forme différente suivant les
besoins : cela peut être un code JavaScript lisible par le développeur (detailed), mais volumineux et à
l’opposé, un code JavaScript très compressé et illisible (obfuscated), beaucoup moins volumineux.
Une compilation detailed peut être utilisée par le développeur pour tracer d’éventuelles erreurs
JavaScript, comprendre le travail effectué par le compilateur, etc.
Une compilation obfuscated est destinée à être mise en production. En effet, elle assure une certaine
confidentialité des procédés et un besoin en ressource diminué.
function
com_exemple_test_client_Test_$maMethode__Lcom_exemple_test_client_
Test_2ILjava_lang_String_2(count){
var chaine, i;
chaine = $intern_0;
for (i = 0; i < count; ++i)
chaine = chaine + $intern_1 + i;
return chaine;
Ce code généré reste tout à fait lisible et au final assez proche de la version Java. La compilation en
mode obfuscated donne :
Les symboles oe, pe, etc. sont définis par ailleurs dans la permutation. Ici, le code est très restreint en
nombre de caractères et illisible.
L’application prête à être déployée est disponible dans le dossier war après compilation. Celui-ci contient
les éléments suivants :
L’application serveur (dans le cas d’une application Java/Tomcat) dans le dossier WEB-INF.
Celui-ci inclut le descripteur de déploiement web.xml, les bibliothèques utilisées (WEB-INF/lib)
et les classes compilées (WEB-INF/classes).
2. Déploiement de l’application
Après compilation, le déploiement de l’application s’effectue par la copie du dossier war/ dans un dossier
du répertoire des applications web du conteneur de servlet. Le nom du dossier est libre.
Pour Tomcat, nous pouvons déployer l’application LivreGWT en copiant le contenu du répertoire war dans
le dossier tomcat-base/webapps/MonApplication/. L’application est alors disponible à l’URL
http://localhost:8080/MonApplication/.
Si plusieurs applications utilisent la même version de GWT, il est possible de factoriser ce Jar en le copiant
dans le dossier des bibliothèques partagées du conteneur de servlet (lib/ pour Tomcat) : il sera alors
disponible pour toutes les applications et sa présence dans WEB-INF/lib ne sera plus nécessaire.
Enfin, s’il faut d’autres bibliothèques Jar, il est possible de les copier :