Comment compiler DeL (Identiplante / Pictoflora) avec GWT

Détermination en Ligne est écrit en GWT (Java). Chaque modification nécessite de le recompiler; voici les prérequis et la procédure.

Prérequis

Paquets

  • Java >= 8 : j'utilise le paquet Ubuntu oracle-java8-installer mais openjdk-8-jdk fonctionne
  • ant (outil similaire Ă  Make)

Bibliothèques GWT et consorts

Créer un dossier quelque part sur sa machine et y placer les bibliothèques suivantes, que l'on trouvera sur Internet ou sur le PC d'un collègue.
Les versions sont données à titre indicatif (Mathias, 2017-08). Ça devrait marcher avec les suivantes mais c'est pas garanti.

GWT


Optionnel : plugin pour Eclipse

http://www.gwtproject.org/download.html

Fichiers de configuration

Créer un fichier local.properties et y placer ceci :
gwt-path=/chemin/vers/gwt-2.5.1/

Compilation

Se rendre dans le dossier racine des sources de DeL et y taper joyeusement ceci :
ant compile

Pour développer, une compilation de la permutation Firefox seulement est suffisante (beaucoup plus rapide) :
ant compile-quick

Oui mais attention, pour une raison obscure, après la compilation de la permutation unique une compilation classique de toutes les permutations est lancée; l'arrêter avec Ctrl+C (et modifier le fichier build.xml un jour pour éviter ça).

On doit obtenir une sortie de ce type :
Buildfile: /home/mathias/web/eflore/applications/del/build.xml

init-local-properties:

compile-quick:
     [java] Compiling module org.tela_botanica.del.Del-test
     [java]    Computing all possible rebind results for 'org.tela_botanica.del.client.vues.identiplante.plateformedetermination.IdentiplanteDeterminationVue.DeterminationUIiBinder'
     [java]       Rebinding org.tela_botanica.del.client.vues.identiplante.plateformedetermination.IdentiplanteDeterminationVue.DeterminationUIiBinder
     [java]          Invoking generator com.google.gwt.uibinder.rebind.UiBinderGenerator
     [java]             The following problems were detected
     [java]                [WARN] Line 120 column 84: encountered "". Was expecting one of: "}" ";" <IDENT> 
     [java]    Computing all possible rebind results for 'org.tela_botanica.del.client.vues.identiplante.moteur.MoteurIdentiplanteVue.Binder'
     [java]       Rebinding org.tela_botanica.del.client.vues.identiplante.moteur.MoteurIdentiplanteVue.Binder
     [java]          Invoking generator com.google.gwt.uibinder.rebind.UiBinderGenerator
     [java]             The following problems were detected
     [java]                [WARN] Line 12 column 19: encountered ";". Was expecting one of: "+" "-" <STRING> <IDENT> <NUMBER> <URL> <PERCENTAGE> <PT> <MM> <CM> <PC> <IN> <PX> <EMS> <EXS> <DEG> <RAD> <GRAD> <MS> <SECOND> <HZ> <KHZ> <DIMEN> <HASH> <UNICODERANGE> <FUNCTION> 
     [java]    Computing all possible rebind results for 'org.tela_botanica.del.client.composants.votes.details.LigneVoteVue.LigneVoteVueUiBinder'
     [java]       Rebinding org.tela_botanica.del.client.composants.votes.details.LigneVoteVue.LigneVoteVueUiBinder
     [java]          Invoking generator com.google.gwt.uibinder.rebind.UiBinderGenerator
     [java]             The following problems were detected
     [java]                [WARN] Line 7 column 16: encountered "(". Was expecting one of: "+" "-" <STRING> <IDENT> <NUMBER> <URL> <PERCENTAGE> <PT> <MM> <CM> <PC> <IN> <PX> <EMS> <EXS> <DEG> <RAD> <GRAD> <MS> <SECOND> <HZ> <KHZ> <DIMEN> <HASH> <UNICODERANGE> <FUNCTION> 
     [java]    Compiling 1 permutation
     [java]       Compiling permutation 0...

     [java]    Compile of permutations succeeded
     [java] Linking into /home/mathias/web/eflore/applications/del/war/del
     [java]    Link succeeded
     [java]    Compilation succeeded -- 8,991s
     [java] Compiling module org.tela_botanica.del.Del
(...)
**Ctrl+C**

Si ça ne se termine pas par Compilation succeeded --, vous l'avez dans l'os vérifier votre fichier local.properties.

Lancer DeL

Dans le dossier war, copier config.defaut.js en config.js et config.defaut.php en config.php, les relire vite fait et ajuster les chemins.
L'interface de DeL peut taper dans n'importe quel service DeL; si vous n'avez pas les services en local, utiliser api-test... et ça devrait marcher.

Se débrouiller pour que votre serveur Web serve le dossier de "DeL"", et accéder au fichier war/identiplante.php ou war/pictoflora.php; ex: http://localhost/del/war/identiplante.php
Et voilĂ  !