Skip to content

Configuration d'un environnement de développement Eclipse pour GeOxygene

Marie-Dominique Van Damme edited this page Mar 18, 2019 · 31 revisions

Prérequis

Testé avec Eclipse >= Oxygene https://www.eclipse.org/downloads/eclipse-packages/

JDK >= 8 (Attention, pas testé avec JDK 9) http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


keystore pour les serveurs en HTTPS

Le système de build de GeOxygene est Maven, qui télécharge des dépendances sur des dépôts distants.

Or certaines des dépendances de GeOxygene se trouvent sur une forge maven hébergée à l'IGN (https://forge-cogit.ign.fr/nexus/#welcome) qui est auto-certifiée. Pour contourner les restrictions de sécurité imposées par Maven sur les liens https, on va importer ce certificat dans un "keystore", qu'on utilisera ensuite dans Eclipse.

On va créer ce keystore et y importer le certificat en utilisant l'outil keytool livré avec le JDK. Sous Linux, il est normalement dans le PATH, mais sous Windows, s'il ne l'est pas on devra appeler la commande avec son chemin complet, par exemple :

C:\Program Files\Java\jre8\bin\keytool

Création d'un keystore

Télécharger le certificat depuis votre navigateur comme ceci :

  • Ouvrir votre navigateur et aller sur la page https://forge-cogit.ign.fr/nexus/#welcome

  • Dans la barre de navigation, cliquer sur le cadenas

  • Cliquer sur “More informations”

  • Cliquer sur “Display certificate”

  • Cliquer sur “détails”

  • Cliquer sur “Export”

  • Sauvegarder votre certificat sur votre disque dur. Par exemple: E:\certificat\forge-cogit.crt

La ligne de commande suivante va importer le certificat d’autorité dans un fichier trust.jks

keytool -v -alias forgecogit -import -file E:\certificat\forge-cogit.crt \
           -keystore trust.jks
  • Saisir un mot de passe, par exemple “leschiensaboient”

  • Accepter le certificat

Il peut se produire une erreur keytool avec certains JDK :

erreur keytool : java.util.IllegalFormatConversionException: d != java.lang.String

On peut la contourner en ajoutant l'option "-J-Duser.language=en", ce qui donne au final :

keytool -J-Duser.language=en -v -alias forgecogit -import -file \
          E:\certificat\forge-cogit.crt -keystore trust.jks

Utilisation du fichier trust.jks dans Eclipse

Dans Window > Preferences > Java > Installed JRE

Sélectionner le JDK utilisé par défaut et cliquer sur Edit. Ajouter la ligne suivante dans Default VM arguments en spécifiant bien le répertoire où vous avez créé le fichier trust.jks et en remplaçant leschiensaboient par votre mot de passe.

 -Djavax.net.ssl.trustStore=E:\certificat\trust.jks \
           -Djavax.net.ssl.keyStorePassword=leschiensaboient

Préférences

Proxy

Si on est derrière un proxy, comme à l'IGN, modifier les paramètres dans Preferences > General > Network Connections :

  • Active Provider à la valeur "manual"
  • puis on édite les valeurs de "Proxy Entries" pour http et https, avec par exemple pour l'IGN :
    • host : proxy.ign.fr
    • port : 3128
    • ne pas remplir les champs d'authentification

Encodage de texte, éditeur et style

Dans Preferences > General > Workspace :

  • Text File encoding -> UTF8
  • New text file line delimiter -> Unix

Puis dans Preferences > General > Editors > Text Editors, on pourra cocher :

  • Insert spaces for tabs
  • Show line numbers

On pourra importer les préférences de style de code du COGIT, disponibles ici https://github.com/IGNF/geoxygene/blob/master/src/main/resources/java_cogit_formatting_conventions_v1.xml

Cela se fait à Preferences > Java > Code Style > Formatter : Import

Puis on le choisit comme Active Profile :


Plugins Eclipse

Pour pouvoir importer directement un projet Git Eclipse, on aura besoin de "SCM connectors". Pour les installer simplement :

  • dans File > Import, aller dans Maven, puis "Check Out Maven Project From SCM"
  • cliquez sur le lien "Find more SCM connectors in the m2e Marketplace"
  • dans "m2e Team Provider", on sélectionnera m2e-egit
  • Il se peut que l'étape précédente ne fonctionne pas avec un Eclipse récent (par exemple la 2018-12).
  • suivre la fin des instructions d'installation (accepter les licences et avertissements de sécurité et redémarrer)

Paramètres pour Maven si on est derrière un Proxy

Si vous êtes derrière un proxy, la dernière étape consiste à configurer Maven pour utiliser le proxy. Pour cela, il faut ajouter un fichier settings.xml à la racine de Maven (même niveau que le repository maven). Ce répertoire est situé à l’endroit suivant :

  • Windows: C:\Users\Augusta.m2\
  • Linux: ~/.m2/

Voici un exemple de fichier settings.xml avec les paramètres pour le se serveur proxy de IGN :

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                              http://maven.apache.org/xsd/settings-1.0.0.xsd">
    
    <interactiveMode>true</interactiveMode>
    <usePluginRegistry>false</usePluginRegistry>
    <offline>false</offline>
    
    <proxies>
        <proxy>
            <active>true</active>
            <port>3128</port>
            <host>proxy.ign.fr</host>
            <nonProxyHosts>localhost</nonProxyHosts>
        </proxy>
    </proxies>
    
    <profiles>
        <profile>
            <id>cogit</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>
    
</settings>

Import de GeOxygene

GeOxygene est organisé comme un projet Maven. Pour l'importer, on fera File > Import, puis :

  • dans Maven sélectionnez "Check out Maven Projects From SCM", puis "Next"
  • cliquez sur "Finish"
  • attendre :)

Si au cours de l'installation, une fenêtre demande "Discover and map Eclipse plugins to Maven plugin goal executions", acceptez (faire "Finish"). Eclipse proposera alors d'installer un nouveau plugin, acceptez et suivez la fin de la procédure comme précédemment (accepter les licences et avertissements de sécurité et redémarrer).

TroubleShooting

Utiliser un maven différent de celui qui est "embedded" dans Eclipse

Le maven embarqué dans la version 2018.12 d'Eclipse (testée sous Ubuntu 18.04), ne parvient pas à télécharger les dépendances malgré le fichier trust.

On peut contourner le problème en indiquant à Eclipse d'utiliser plutôt le maven de la distribution, en procédant comme suit :

  • dans Window > Preferences > Maven > installation, on ajoute manuellement le maven du système, par exemple sous une Ubuntu
  • puis faire attention que le maven utilisé dans les configurations de build soit bien "l'external"