-
Notifications
You must be signed in to change notification settings - Fork 16
Configuration d'un environnement de développement Eclipse pour GeOxygene
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
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
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
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
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
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 :
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).
-
Si c'est le cas on pourra installer le connecteur manuellement, en faisant : Help > Install New Software > Add Puis on ajoute le dépot pour le connecteur, en lui donnant un nom (par exemple maven-scm-connector) :
http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-egit/0.15.1/N/LATEST/
-
- suivre la fin des instructions d'installation (accepter les licences et avertissements de sécurité et redémarrer)
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>
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"
- dans "SCM URL", choisir git, puis mettre l'url de Geoxygene : https://github.com/IGNF/geoxygene.git
- 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).
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"