Copier son Workspace Eclipse en toute simplicité

splash_eclipse_mars

Comment travailler sur plusieurs versions d'un même projet sous Eclipse sans que l'IDE rame et sans passer trop de temps à reconfigurer son environnement?

Idéalement un projet ne devrait être défini que par sa version en production (sans bug) et une version en cours de développement et de recette. Il n'y aurait pas non plus de développements transverses à moyen terme qui rentrent en conflit avec d'autres développements à plus court terme. Ainsi, les développeurs que nous sommes n'auraient à travailler à un moment T que sur une seule et même version du projet.
Malheureusement sur des projets un tant soit peu pérennes, on se retrouve vite à devoir travailler sur :

  • une version en production : pour correction de bugs
  • une version en recette
  • une version en développement car celle en recette n'a toujours pas reçu de Go pour la production
  • une seconde version en développement car l'autre version en cours de développement devient trop importante, que la version en production n'est pas encore complètement corrigée et que la recette en cours n'est toujours pas validée
  • etc.

Ainsi dernièrement je me suis retrouvé dans la même journée/semaine à devoir switcher entre 4 versions différentes d'un même projet pour des développements tous plus urgents les uns que les autres.
Jusqu'à présent je fonctionnais avec un workspace contenant un Working Set par version du projet, en suffixant le nom de projet par le numéro de version. Mais cette fois-ci, mon IDE a dit stop; enfin en vrai il ne répondait plus.

Initialisation d'un workspace à la main

La solution : créer un workspace de travail par version de projet. Jusqu'à présent, j'avais évité cette solution car le temps de configuration d'un nouveau workspace peut parfois être particulièrement long.
Dans mon cas :

Pour la mise en place du contexte de développement

  • Ajout du repo SVN
  • Ajout des versions de JRE spécifiques
  • Ajout des versions de tomcat utilisées

Pour le travail en équipe (garantir la normalisation du projet et éviter les conflits SVN)

  • configuration des Save Actions
  • configuration des Code Styles : habituellement réalisée en utilisant les fonctions d'import et export présentes sur les pages Clean up/Codes Templates/Formatter/Organize imports
  • configuration de l'encoding par défaut : UTF-8
  • configuration des ressources ignorées dans l'outil de synchro vers les repo d'équipe.

Pour le confort et la productivité

  • configuration des perspectives
  • etc.

Utilisation des fonctionnalités Eclipse

Puis en cherchant un peu j'ai eu la bonne surprise de tomber sur deux fonctionnalités que je n'avais jamais vu ou remarqué :

Copy du Workbench Layout

Dans File>Switch Workspace>Other..., le wizard de sélection/création de workspace vous propose de copier 'Workbench Layout' et 'Working Set'.
A la validation on se retrouve alors avec un nouveau workspace dans lequel les perspectives sont déjà préconfigurées à quelques détails près.

CopyWorkspace-workbench

Il récupère notamment :

  • Les perspectives ouvertes
  • L'agencement des vues que vous avez configuré au sein de chaque perspectives
  • Tout le paramétrage que vous auriez pu faire dans Windows>Perspectives>Customize Perspective...

Quelques petits manques :

  • L'option Show Text des icônes de perspectives
  • La personnalisation des outils de recherche

Import/Export Préférences

Dans File>Export...>General>Preferences, un wizard vous permet de sélectionner tout (Export all) ou partie des Préférences Eclipse dans un fichier .epf.
Il suffit alors dans votre nouveau workspace de faire la procédure inverse : File>Import...>General>Preferences de sélectionner votre fichier export.epf et là encore de sélectionner tout (Import all) ou partie des Préférences Eclipse à importer.

CopyWorkspace-export

Il récupère notamment :

  • Les paramétrage de votre repo (dans mon cas SVN)
  • Les configurations de styles Window>Preferences>Java>Code Style>...
  • Les configurations JRE Window>Preferences>Java>Installed JRE
  • Les configurations serveurs Window>Preferences>Server>Runtime Environnement
  • L'encoding par défaut Window>Preferences>General>Workspace>Text file encoding
  • Les configuration des ressources ignorées dans l'outil de synchro Window>Preferences>Team>Ignored Resources

Bref grâce à ces deux astuces, le temps de configuration d'un workspace n'est plus un frein pour la gestion par workspace de différentes versions d'un même projet et libère un peu de ressources à Eclipse pour pouvoir travailler sereinement sur la version X en cours au moment T liée à l'urgence U du client C (comme Content de votre nouveau regain de productivité) !

Ces actions ont été testées avec Eclipse Mars 4.5 et Spring Tool Suite 3.7.2.RELEASE

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.