Serge SIMON. 12/06/2012. Updated 31/07/2012.

Présentation propulsée sous Deck.js. Navigation par ←, →, m (menu), t (toc), g (goto), F11 (fullscreen).

Eclipse
« Astuces, utilisation avancée & optimisations »

Introduction

Cette présentation ...

... détaille quelques généralités, modes de fonctionnement, raccourcis-clavier (disséminés tout au long de la présentation), astuces, etc.

Chaque item a une note :

La plupart des développeurs passent beaucoup de temps chaque jour sur Eclipse ... à ce titre, il (me) sembe important de bien connaître l'outil, sa paramétrie, les raccourcis, pour en tirer le meilleur parti (et surtout, pour s'éviter un certain nombre de manipulations fastidieuses).

Versions d'Eclipse disponibles

Quelle version choisir ?

Dans la majorité des cas, la version "Java" est amplement suffisante. Remarque : elle ne contient cependant pas WTP (Web Tools Platform, pour le lancement des serveurs web), mais avantageusement remplacé par un usage local de Jetty.

Versions d'Eclipse disponibles (tableau)

ReleaseDateVersionNotes
4.xKeplerJune 2013 (prévisionnel)e4 Project (http://www.eclipse.org/e4/)
3.8JunoJune 2012
3.7IndigoJune 2011Version utilisee dans l'equipe.
3.6Helios23 June 2010
3.5Galileo24 June 2009
3.4Ganymede25 June 2008
3.3Europa29 June 2007
3.2Callisto30 June 2006
3.1Eclipse 3.128 June 2005
3.0Eclipse 3.028 June 2004

Remarque : Eclipse 4 (Kepler) est une réecriture complète "from scratch" du projet.

A savoir : Eclipse est bâti sur OSGi (pour les plugins notamment), via Equinox.
Propose la plateform RCP (Rich Client Platform) permettant de construire des clients lours avec la même architecture qu'Eclipse (IHM en SWT, notions de perspectives/vues/plugins, etc.).

Concurrents

Premier concurrent de poids, Netbeans (http://fr.netbeans.org/) qui est, pour rappel, l'outillage de développement officiel dans le monde Java puisque développé par Oracle (anciemment Sun). Contrairement à Eclipse, Netbeans respecte la philosophie Java avec une IHM construite en SWING sans aucune dépendance système (alors qu'Eclipse, via SWT, a des dépendances systèmes).

L'outsider qui a le vent en poupe est IntelliJ IDEA (http://www.jetbrains.com/idea/), "The Most Intelligent Java IDE" (sic). Relativement similaire à Eclipse, il est payant à la base même si une Community Edition existe désormais.

Sommaire

Chapitre 1. Optimisations

Taille mémoire

Essayez d'avoir un maximum de mémoire.
3 GO = grand minimum pour les gros projets.
4 GO sous Seven 64bits = recommandés
Prévoir 8 GO si nécessité d'intervenir sur plusieurs projets) (voir plus loin sur la répartition des projets en workspaces)

Il peut être intéressant de démarrer certains éléments hors Eclipse (ex. HSQLDB) pour les cas vraiment limites (évite de consommer de la mémoire au sein d'Eclipse et de devoir être redémarré en cas de plantage d'Eclipse par ex.)

Optimisation mémoire système

Activer le "new garbage collector" (disponible à partir du JDK 1.6.0.11) : dans eclipse.ini

Une paramétrie d'Eclipse standard devrait proposer niveau RAM (paramétrie à faire au sein du eclipse.ini ou en ligne de commande (raccourci de lancement))

Attention, ces paramétries sont à valider / tester et peuvent dépendre de vos contextes (taille des projets, utilisation d'Eclipse, etc. : il peut être intéressant de tailler la mémoire différemment, etc.)

Optimisation temps de démarrage

General > Startup and Shutdown > tout décocher

Réduction du temps d'affichage. Certaines fonctions sont inutiles sur les projets usuels (tous les mécanismes de collectes d'usages, tout ce qui tourne autour de JAX-WS, etc.), d'autres peuvent être n'activées qu'au besoin (plugin de profiling, etc.).

Optimisation ressources

Usage Data Collector > désactiver

Monitore l'usage d'Eclipse et remonte périodiquement les statistiques correspondantes sur le site des développeurs d'Eclipse. Un mécanisme similaire existe sur le connecteur JIRA pour Mylyn.

Optimisation visuelle

Window > Preferences > General > Appearance > [OFF] Enable animations

Réduction du temps d'affichage, notamment lors des aggrandissements / réductions de vues.

[raccourci clavier] Gérer la fenêtre d'édition courante

CTRL-M

Aggrandir / réduire la vue Eclipse en cours (ex. zone d'édition Java > passage en plein écran / retour à la normale).

Optimisation visuelle

Window > Preferences > General > Appearance > [ON] Show traditionnal style tabs

Gagner (à peine) en surface d'affichage à certains endroits du workspace (pour les petits écrans type PC portable)

Remarque : le look global change à partir d'Eclipse 3.8 (Juno)

Optimisation du temps de démarrage

Purger le sous-répertoire configuration/org.eclipse.osgi/bundles (dans le répertoire d'installation d'Eclipse)

Tous les plugins disponibles créent un cache local qui à terme pénalise le démarrage d'Eclipse.

Travailler impérativement avec un JDK récent (dernières version 1.6, voire 1.7)

Installer manuellement le JDK à jour (depuis le site d'Oracle.
Paramétrer Eclipse pour démarrer avec ce JDK, éventuellement paramétrer Eclipse pour pointer dessus (Preferences > Java > Installed JRE)

Les nouvelles versions du JRE/JDK apportent régulièrement des gains de performances, notamment entre les versions majeures (1.5 > 1.6 > 1.7).
Celà n'empêche absolement pas de garder un JDK d'une autre version pour assurer la compilation (cf. dans les Préférences "Installed JRE") + niveau de compatibilité du projet dans ses préférences (1.3 / 1.4 / 1.5 / 1.6, indépendamment du JDK utilisé pour la compilation).

Rappel : lors de la mise à jour d'un projet Maven, le niveau de JDK utilisé sous Eclipse est défini par le plugin "maven-compiler-plugin"

Désactiver le correcteur orthographique

Window > Preferences > General > Editors > Text Editors > Spelling > [OFF] Enable spell checker

Améliore les performances d'Eclipse.

Désactiver les validators

De manière globale sous Préférences > Validators, ou dans la configuration de chaque projet.

Améliore un peu la réactivité d'Eclipse (moins de fichiers à analyser) et évite certaines erreurs récurrentes (sur les POM ou certains HTML, etc.). A réactiver ponctuellement au besoin.

Désactiver les plugins type Checkstyle ou FindBugs sous Eclipse

Désinstallation du plugin (ou ne pas l'installer) ou le désactiver dans les Préférences

Ces plugins sont souvent très pénalisants en terme de performances (analyses continues à la volée).
A n'utiliser que ponctuellement en les réactivant sous Eclipse.
La bonne pratique consiste à analyser ces informations via les règles idoines Sonar.

Chapitre 2. Configuration

Configurer l'encoding du workspace en UTF-8

General > Workspace > UTF-8

Important, pour éviter d'avoir des problèmes d'encodage par ex. dans les commentaires sous CVS !

Si vous voyez où que ce soit des caractères gerne @~é, c'est que vous avez un problème d'encodage sur votre poste (ou éventuellement que qq'un ayant un problème d'encodage a commité). A corriger / faire corriger rapidement.

Sous Linux, l'encoding est par défaut en UTF-8, mais à positionner correctement sous Windows.

Configurer correctement le réseau

General > Network Connections > configurer le proxy + proxy bypass (jira-projets.domaine.tld, server.domaine.tld, svn.domaine.tld, localhost, 127.0.0.1, etc.) (attention, case sensitive !). Au final le plus simple est de mettre "*.domaine.tld".

Permet d'accéder tant aux ressources internes (SVN, CVS, Sonar, etc.) qu'externes (mises à jour, marketplace, ...)

Configurer correctement la vue "Problems"

Bien spécifier une option permettant de ne voir les erreurs que sur le projet courant

Pour ne pas être noyé par les erreurs

Il est également possible de retirer certains types d'erreurs (les erreurs sur DTD ou au sein des pom.xml Maven par ex. - certains sont difficilement corrigeables aujourd'hui)

Automatiser l'insertion d'un bloc de texte répétitif

En créant ses propres templates dans Preferences > Java > Editor > Templates, [New] ou [Import] pour la partie Java, ou, par ex., Preferences > XML > XML Files > Editor> Templates

Permet par ex. d'insérer en Java très facilement un LOGGER, y compris avec les imports côté code ; un pattern HTML dans un template ; ou un pattern XML dans une fiche de tests, etc.

De nombreux templates existants sont déjà disponibles, souvent méconnus (et tous accessibles via CTRL-ESPACE), par ex. côté Java pour la création des boucles for ou la mise en place d'un try ... catch

Automatiser l'insertion de code répétitif (templates Java)

Ex. de template pour un LOGGER SLF4J (template log) :
${:import(org.slf4j.Logger,org.slf4j.LoggerFactory)}
/** Logger. */
private static final Logger LOGGER = LoggerFactory.getLogger(${enclosing_type}.class);

Ex. de template pour un LOGGER LOG4J (template log) :
${:import(org.apache.commons.logging.Log,org.apache.commons.logging.LogFactory)}
/** Logger. */
private static Log log = LogFactory.getLog(${enclosing_type}.class);

Ex. de template pour créer une constante (le type n'est à renseigner qu'une seule fois) (template const) :
private static final ${type} ${name} = new ${type}() ${cursor};

Ex. de template pour créer une liste (template list) :
${:import(java.util.Collection, java.util.ArrayList)}
Collection<${argType}> ${newName} = new ArrayList<${argType}>();

Ex. de template pour créer une map (template map)
${:import(java.util.Map,java.util.HashMap)}
Map<${argType},${argType2}> ${newName} = new HashMap<${argType},${argType2}>();

Automatiser l'insertion de code répétitif (template XML)

Ex. de base de template pour une fiche de test XML (au format LTP/Tester) (template test):
<test id="${cursor};">
  <description></description>
  <message_pour_appli id="" description="" emetteur="" requete="" contenu="">
    <assertions>
    </assertions>
  </message_pour_appli>
</test>

Chapitre 3. Plugins

Installation des plugins

Toujours passer par le Marketplace. Eviter les installations manuelles par dézippage (de plus en plus rares / inutiles).

Il faut bien sûr avoir son proxy correctement configuré (cf. point plus haut).

N/A

Plugins pertinents

Plugins présentés :

Autres pistes pour les plugins

Plugins NON présentés ici mais pouvant avoir un intérêt :

APTEditor

Récupération du plugin depuis le web. Installation du .css Maven dans la config du produit.

Une alternative est le plugin YEP Apt Editor http://marketplace.eclipse.org/content/yep-apt-editor, qui pose à priori moins de problèmes sous Windows (pas de ralentissements en prévisu).

Permet de prévisualiser le contenu des fichiers Maven apt

JAutoDoc

Installation depuis le Marketplace.

Permet de compléter automatiquement la Javadoc, soit à la souris, soit, sur une méthode ou une classe, avec le raccourci CTRL-ALT-J. Permet de renseigner les constructeurs, l'entête de classe, les méthodes, les propriétés, les getters/setters (en mode création ou mise à jour). Il reste ensuite juste en général à raffiner les commentaires des méthodes importantes / sensibles / complexes.

[raccourci clavier] Ajout de la javadoc

CTRL-ALT-J

Ajouter la Javadoc sur l'élément courant (méthode, classe, ...) (voir la partie plugin JAutoDoc).

Grep Console

Installation depuis le Marketplace.

Permet à partir d'expressions régulières de colorer les logs. Indispensable pour voir passer les erreurs ou les warnings. Pas d'impact notable sur les performances de l'affichage en console. Ex. pour les erreurs, paramétrer le fond en rouge et l'expression ".*\[ERROR\].*".

SONAR

Installation depuis le Marketplace.

Cf. la présentation SONAR, permet de consulter une partie de l'analyse SONAR directement depuis Eclipse (violations notamment).

EclEmma

Installation depuis le Marketplace. Lancement par bouton droit sur le répertoire junit/ et "Coverage As" au lieu de "Run As"

Permet de visualiser la couverture de test des tests junit directement sous Eclipse. Basé sur Jacoco pour le moteur d'analyse.

Mylyn

Normalement installé par défaut. Conseil : toujours utiliser des filtres sauvegardés sous JIRA plutôt que des filtres locaux (pour éviter de les paramétrer sur chaque poste)

Permet de : naviguer dans les JIRA, créer de nouveaux JIRA, indiquer qu'on travaille sur un JIRA donné pour sauvegarde du contexte (historique des modifications apportées dans le cadre de ce JIRA), etc.

JInto

Depuis le Marketplace. Utilisation par click droit sur un .properties et ouverture avec l'éditeur JInto

Permet d'éditer en colonne un fichier properties dans chaque langue existante

Quick REx

Installation manuelle depuis http://sourceforge.net/projects/quickrex/. Usage par la vue Quick RegExp dédiée.

Permet de tester des expressions régulières Java sans devoir faire un main. Utile seulement si beaucoup de regexp à écrire.

Disponible aussi en standalone. Homepage : http://www.bastian-bergerhoff.com/eclipse/features/web/QuickREx/toc.html.

Chapitre 4. Utilisation d'Eclipse

[raccourci clavier] Ouvrir l'objet courant dans une vue

ALT-SHIFT-W

Sur un élement quelconque (une classe par ex.), ouvre un popup contextuel permettant de choisir dans quelle vue on veut ouvrir cet élément (par ex., dans la vue "History" ou dans le "Package Explorer")

[raccourci clavier] Quick-edit

CTRL-Q

Ramène au dernier point d'édition sous Eclipse !

[raccourci clavier] Navigation au clavier

CTRL-D

ALT-FLECHE_HAUT ou ALT-FLECHE_BAS

CTRL-SHIFT-ENTER

CTRL-D< permet d'effacer la ligne courante, sans toucher au presse-papier.

ALT-FLECHE (HAUT ou BAS) permet de déplacer la ligne ou le bloc sélectionné vers le haut ou le bas (sans nécessiter là aussi de passer par le presse-papier).

CTRL-SHIFT-ENTER ajoute une ligne vide avant la ligne courante et y positionne le curseur.

Vue CVS/SVN en console

Dans l'onglet Console, sélectionner en haut à droite dans la liste déroulante "CVS Console" ou "SVN Console" pour voir toutes les opérations SCM réalisées par Eclipse.

Permet dans certains cas de voir des erreurs qui peuvent survenir, ou de voir sur quel fichier le checkout restait bloqué.

Taille de la console en debug

Sous Windows > Preferences > Run/Debug > Console, changer la taille du buffer de console.

Permet d'avoir + de lignes affichés. Attention, consomme de la mémoire !.

Un exemple de workspace optimisé

C'est évidemment propre à chacun, mais voilà comment je configure le mien.
- Pas de barre d'outils.
- Seulement trois zones : en vertical, le package explorer + JUnit. En horizontal, la zone d'édition. Toutes les vues rassemblées au même endroit : Problems, Call Hierarchy, Ant, Synchronize, Console, History, Search, Coverage, Progress.
- Pas de line number sur les éditeurs.

Maximiser la zone d'édition du code.

Avoir ni trop ni trop peu de vues à disposition (notamment la vue Synchronize, évite de switcher sans arrêt sur la Perspective CVS/SVN).

Différentes vues disponibles

Privilégiez la vue Package Explorer et au besoin le raccourci clavier "CTRL-SHIFT-R" pour ouvrir les fichiers cachés genre .classpath

Package Explorer montre une vision Java du projet (mais ne montre pas les fichiers cachés genre .classpath). Les librairies externes sont notamment masquées sous un item "Referenced Libraries" (ce qui est plus clair).

Initialiser un nouveau workspace à partir des settings d'un précédent

Démarrer un Eclipse bien configuré. Faire File > Switch workspace > Other. Saisir le nom du nouveau workspace et cocher la case "Copy Settings > Workbench Layout".

Permettra de retrouver la même disposition sur le nouveau workspace que sur l'ancien.

Regrouper ses projets en groupes de projets ("working sets")

Accès à l'IHM de création/sélection des workings set. Affectation d'un ou plusieurs projets.

Les projets ne figurant pas dans le working set "disparaissent" du workspace courant. Attention, les projets ne sont PAS fermés (un CTRL-SHIFT-T prendra par ex. toujours les projets hors-working set dans son contexte)

Il est également conseillé de fermer les projets inutilisés. Ainsi, ils n'apparaissent plus lors des recherches (que ce soit recherches fichiers ou recherches Java type héritage, etc.)

Répartitions des workspaces

Conseil : faire un workspace par thématique ou par niveau de patchs (et éviter de tout mettre dans le même workspace).

Améliore le démarrage d'Eclipse. Améliore toutes les recherches (appel d'une méthode, héritage de classes, etc.). Evite les erreurs (notamment quand on commence à avoir plusieurs branches à descendre). Evite les renommages de projets (un workspace par patch / branche = les noms de projets restent toujours les mêmes).

Astuce : ajouter le paramètre "-showlocation" (sur le raccourci Eclipse ou dans le fichier "eclipse.ini") pour afficher dans la barre de titres le nom du workspace (afin de mieux s'y retrouver sur ALT-TAB)

Colorer en rouge le fond d'un workspace de prod

Sur le workspace considéré, sous General > Appearance > Colors and Fonts, sélectionnez "View and Editor Folders" puis "Active Part background begin / end" et passez ces champs en couleur rouge

Permet, si on a un workspace par ex. réservé à un ou plusieurs projets de configuration à destination de la prod (ex. que des projects occurrences Pyramide v5 ne contenant que des .xml/.sql), de démarquer visualement ce workspace par rapport aux autres.

Nommer les workspaces pour mieux les retrouver sur alt-tab

Sous Preferences > General > Workspace, modifiez le champ "Workspace Name"

Permet sur ALT-TAB de mieux voir le nom du workspace. Remplace l'astuce du -showlocation évoquée au chapitre Répartitions des workspaces.

Accès rapide à l'historique d'une classe

Par drag'n'drop depuis le Package Explorer vers la vue History

N/A

Voir rapidement qui a modifié quel morceau de code et quand

Sur une classe ayant un historique CVS/SVN : dans la gouttière (là où se posent les breakpoints), faire click droit > Show Annotations

Plus rapide que de passer par l'historique / permet une navigation directement dans le code indépendamment de la version de la classe (vision transversale)

Stocker les .launch (external tools) sous CVS/SVN

Remonter les configuration de "run" d'Eclipse sous CVS/SVN (mais attention aux infos contenant des chemins en dur genre sur des classpath ou des paths vers des commandes système ...)
Pour les .launch qui modifient des éléments au sein du projet (fichier .classpath sur un "mvn eclipse:eclipse" par ex., activer le Refresh automatique en fin d'opération) (voir capture)

Partage des .launch entre plusieurs développeurs (les .launch stockés dans un projet apparaissent automatiquement dans la liste des External Tools sous Eclipse)

Entourer une chaîne avec CTRL-ESPACE

Sélectionner la chaîne ou la méthode. Activer CTRL-ESPACE. La liste déroulante propose par exemple "sysout". Le résultat du sysout englobera la chaîne qui était sélectionnée auparavant.

Evite de faire des manips (copier/coller, etc.) après l'apparition du template.

[raccourci clavier] Lister les raccourcis clavier

CTRL-SHIFT-L

Lister tous les raccourcis claviers d'Eclipse les plus intéressants / importants !

Un 2e enchaînement de cette combinaison de touches permet d'accéder directement à la fenêtre d'édition des raccourcis.

[raccourci clavier] Switcher entre les perspectives Eclipse

CTRL-F8

Permet de navigurer entre les perspectives Eclipse actuellement ouvertes (par ex., Java / Debug / CVS).

Pensez à bien fermer les perspectives inutilisées pour ne pas gaspiller de mémoire.

[raccourci clavier] Sauter à un numéro de ligne quelconque

CTRL-L

Aller à un numéro de ligne (indispensable pour retrouver un numéro de ligne suite à une stacktrace).

[raccourci clavier] Liste des vues disponibles

CTRL-ALT-Q, Q

Afficher la fenêtre de sélections des vues éclipse.

[raccourci clavier] Renommer un élément

SHIFT-ALT-R

Renommer l'élément courant.

[raccourci clavier] Sélection rapide d'un éditeur

CTRL-E

Affiche dans une popup (pour sélection rapide au clavier) la liste des onglets d'édition ouverts dans Eclipse. Les onglets déjà visibles sont affichés en "actifs", ceux invisibles en "inactif". Il est possible de taper au clavier les premières lettres de l'éditeur que l'on recherche.

[raccourci clavier] Sélection d'un éditeur via boîte de saisie

CTRL-SHIFT-E

Affiche (pour sélection rapide au clavier) la liste des onglets d'édition ouverts dans Eclipse

[raccourci clavier] Recherche

CTRL-H

Recherche au sein de tous les fichiers.

Remarque : il est conseillé via le bouton "Customize" en bas à gauche de retirer les onglets qu'on n'utilise jamais.

Ne pas oublier qu'il est possible d'utiliser des expressions régulières depuis cette fonction, et de faire un replace global au sein de tout le projet.

[raccourci clavier] Recherche incrémentale

CTRL-J

Recherche incrémintale à la volée. Appuyer sur CTRL-J pour passer en mode "incremintal find" et commencez à taper. Une fois le texte à chercher satisfaisant, chaque CTRL-J suivant amène à l'occurrence suivante. Au final, beaucoup + rapide que de faire un CTRL-F.

[raccourci clavier] Commenter / décommenter

CTRL-SHIFT-C ou CTRL-SHIFT-/

Ajoute des commentaires sur le bloc courant.
CTRL-C ajoute des // sur une classe Java (sur une ou plusieurs lignes)
CTRL-SHIFT-C ajoute des // sur une classe Java (sur une ou plusieurs lignes) FIXME
Fonctionne sur les .java, .html, .xml, etc.

Bien veiller à désactiver le "block comment formatting" sous Windows > Preferences > Java > Code Style > Formatter > Edit > Comments pour ne pas voir les commentaires multilignes re-formatés

[raccourci clavier] Accès rapide à une ressource

CTRL-SHIFT-R

Ouvrir rapidement un élément quelconque (classe, fichier HTML, etc.) en saisissant quelques lettres (ou une expression régulière). Veillez à bien mettre en "derived" les répertoires target pour qu'ils n'apparaissent pas dans ce type de boîtes de dialogue.

[raccourci clavier] Accès rapide à un type

CTRL-SHIFT-T

Ouvrir rapidement une classe quelconque en saisissant quelques lettres.

Personnaliser ses raccourcis claviers

Sous General > Keys

Affectation d'une action quelconque d'Eclipse à un nouveau raccourci clavier. Selon les usages de chacun ...

Chapitre 5. Java

Optimisations du debuggage

Dans Preferences > Java > Debug > Step Filtering, tout cocher et activer.

Indispensable : permet de ne PAS rentrer dans les classes Java ou les classes des librairies communes lorsqu'on débug en pas à pas ! (l'exclusion ne se fait que sur les masques spécifiés ; il est possible d'ajouter de nouveaux masques au besoin, par ex. "org.apache.*" ou, dans un environnement métier, un masque pour une librairie type Q3P ou LTP).

Si vous utilisez des getters/setters "simples" (qui n'ont pas de code supplémentaires), il peut être intéressant également de cocher les options pour ne pas débugger les getter/settter (sur la même IHM).

Breakpoint conditionnel

Sur les propriétés d'un point de debuggage, possibilité de mettre n'importe quelle condition (à écrire en java avec les objets accessibles sur ce breakpoint). Accès par "Breakpoint properties" depuis la vue idoine ou par click droit directement dans l'éditeur sur le breakpoint.

Indispensable : permet par ex. sur une boucle d'activer le breakpoint seulement quand telle ou telle valeur est atteinte.

Optimiser le "content-assist"

Dans Preferences > Java > Editor > Content Assist > Advanced, quasiment tout décocher (voir capture) (mais conservez impérativement "Java" et "Template") .

Le "content-assist" est l'aide à la complétion par CTRL-ESPACE.

Par défaut il propose beaucoup de choses (élements SWT, JPA, JAX-WS, PDE pour la création de plugins Eclipse, etc. - sauf bien sûr si vous utilisez certaines de ces fonctionnalités).

Retirer les blocks de complétions possible accélère ensuite l'usage du CTRL-ESPACE pour l'écriture de Java standard.

Encore + important si utilisation d'Eclipse J2EE (car beaucoup de de protocoles proposables)).

Répertoires "derived"

Bouton droit sur un répertoire > Propriétés > Case à cocher "Derived"

Quand vous faites une recherche au sein d'un projet, Eclipse montre souvent des résultats dans des répertoires contenant du code généré (ex. "bin/" ou "dist/" ou "target/"), ce qui ne sert à rien.
Pour masquer ces répertoires sous Eclipse il faut les indiquer comme "DERIVED" ce qui l'exclut de toutes les rercherches (qui deviennent du coup beaucoup plus rapides une fois les répertoires "target" (Maven) ou "dist", "build" (Ant) ou "work" (tomcat) marqués comme tel).

Attention, ne fonctionne qu'avec le pyr-pom-root et la bonne configuration Maven (sinon Maven efface le répertoire à chaque "mvn clean", ce qui entraîne alors la perte du flag sous Eclipse !)

Création rapide d'une classe

Créer la classe à la volée dans le fichier courant, puis utiliser la fonction Refactor > Move Type To New File

Evite pas mal de manipulations (File > Create New Class).

Trouver automatiquement depuis Eclipse les Generics

Sur une ou plusieurs classes sélectionnées, utiliser Refactor > Infer Generic Types Arguments

Permet de transformer une classe Java 1.4 ou Generics Java 1.5. Fonctionne à 90% (les cas qu'Eclipse n'arrive pas à identifier sont laissés en l'état).

Barre de navigation rapide

Depuis Navigate > Show In Breadcrumb. Se désactive par bouton droit sur la ""Breadcrumb bar" elle même.

= Navigation rapide au sein des packages / méthodes.

Utilisation des fonctions d'Eclipse pour la création de beans

Utiliser tout ce qui est dans le menu "Source" :
- création des getters / setters (Source > Generate Getters/Setters)
- surcharge de méthodes (Quick Fix CTRL-SHIFT-1 > Add unimplemened methods)
- création de constructeurs (héritage ou à partir des champs) (Source > Generate constructors from ...)
- mise en place de la Javadoc (plugin JAutoDoc, ALT-SHIFT-J)
- imports automatiques (CTRL-SHIFT-O)
- formattage automatique (CTRL-A puis CTRL-SHIFT-F)

Pour en pas s'embêter avec des manipulations répétitives

Création rapide des champs depuis le constructeur

Créer un constructeur. Placer les champs dans la signature. Faire CTRL-SHIFT-1 (quick fix) et choisir l'option d'affectation vers un nouveau champ "Assign parameter to new field"

Pour en pas s'embêter avec des manipulations répétitives

[raccourci clavier] Quick Fix

CTRL-SHIFT-1

Affiche le menu de correction rapide, contenant des entrées contextuelles par rapport au problème courant (correction d'import, création de méthodes, ajout de paramètre dans la signature, etc.).

Actions de sauvegarde automatique

Windows > Preferences > Java > Editor > Save Actions

Permet d'automatiser toute une floppée d'opérations lors de chaque sauvegarde, par ex. :
- suppression automatique des imports inutiles
- ajout automatique des annotations type @Override
- ajout des mots-clés manquants au sein du code, ex. mot-clé "final" quand il est nécessaire (sur les paramètres et/ou à l'intérieur des méthodes et/ou en variable de classe)
- conversion des boucles for en version étendue
- etc.

Formattage spécifique Java

Windows > Preferences > Java > Formatter

Permet de définir tout un ensemble de propriétés intéressantes quand au formattage du code : - taille maximale des lignes ou des commentaires (indispensable lors du formattage automatique)
- formattage des commentaires
- gestion des tabulations / espaces afin d'être homogène (espaces partout recommandés)
- etc.

Astuce : le formattage du code peut également être appliqué automatiquement en "Save Action"

Info : cette paramétrie est stocké soit de manière globale au workspace, soit de manière spécifique au projet : dans les .settings, et peut donc dans ce cas de figure être mutualisée facilement sous Eclipse (ce qui est conseillé afin que sur un même projet tout le monde ait les mêmes règles de formattage)

Astuce : cette paramétrie peut être stocké dans Maven et réappliqué facilement à plusieurs projets à l'identique

[raccourci clavier] Formattage automatique du code

CTRL-SHIFT-F

Applique le formattage défini côté Eclipse / projet sur la classe ou l'élément sélectionné (faire CTRL-A puis CTRL-SHIFT-F par ex.)

Astuce : fonctionne aussi sans problèmes sur les fichiers XML ou HTML

Gestion par Eclipse du multiligne pour les chaînes

Paramétrer sous Preferences > Java > Editor > Typing l'option "Escape text when pasting into a String literral", puis réaliser le coller de texte par ex. dans String s = "${cursor}";

Evite d'écriture un bloc fastidieux. Permet de copier/coller un XML, etc. Eclipse gère les encodages de guillemets et les retours à la ligne.

Possibilité d'utiliser la balise Eclipse // @formatter:off (et son inverse) pour bloquer le formattage automatique du code sur cette partie

Utiliser chaque fois que possible StringBuilder plutôt que StringBuffer (ce dernier est synchronisé par multithread, donc plus lent). Pas de gains notables pour les sorties standards (pertinent seulement si boucle avec beaucoup d'itérations, ou par commodité). A l'écriture, la version avec "+" sur une String est la plus efficace (car évalué par le compilateur et non à l'exécution).

[raccourci clavier] Lancement rapide d'une classe Java AVEC debug

F11

Relance en mode debug le dernier élément exécuté ou l'élément courant (indispensable pour relancer un test plusieurs fois d'affilée par ex.) ;

[raccourci clavier] Lancement rapide d'une classe Java SANS debug

CTRL-F11

Idem F11, mais sans activer le debug

[raccourci clavier] Lancement d'une classe

ALT-SHIFT-X, J

Exécuter en mode Java le fichier courant. Idem en debug (ALT-SHIFT-D, J). Idem pour les tests avec ou sans debug (ALT-SHIFT-X, T et ALT-SHIFT-D, T).

[raccourci clavier] Hiérarchie d'appel

CTRL-ALT-H

Accéder à la hiérarchie d'appel de la méthode en cours de sélection.

[raccourci clavier] Trouver toutes les références à un élément

CTRL-SHIFT-G

Permet de retrouver toutes les références à un élément, par ex. un objet.

[raccourci clavier] Classes filles

CTRL-T

Montre les classes qui implémentent l'objet sélectionné. Fonctionne sur une Interface ou sur une classe parente. Peut s'appliquer sur le nom de la classe ou sur une méthode.

[raccourci clavier] Ouvrir ressource

CTRL-O

Trouver rapidement une méthod (popup avec filtre possible pour sélection rapide au clavier)

Utiliser les fonctions natives d'Eclipse pour Maven

Activer la configuration via menu contextuel sur le projet > Configure > Convert to Maven Projet. Ensuite un menu contextuel Maven est disponible avec les opérations courantes. Permet également l'édition du POM (attention, très lourd, personnellement je désactive et édite les pom.xml en tant que simple fichier XML).

Pas besoin de lancer / configurer d'external tools.

Bonne pratique :En interne, préconistation de rester sur des .launch stockés sous CVS : le plugin m4e reste toujours un peu buggé (sur la résolution des dépendances par ex. ou la gestion des plugins en pluginManagement), et les .launch permettent des opérations Maven plus fines (enchaînement de plusieurs opérations par ex.).

Remarque : m4e intégré dans Eclipse 3.7 utilise nativement le moteur Maven 3


Fonctions m4e

Ouverture du pom.xml en tant que simple XML

Annexes

Table des raccourcis claviers

Lanceur sous Linux

Permet de choisir le workspace au démarrage parmis tous les workspaces disponibles

A savoir (pour usage en raccourci Windows par ex.) : démarrage automatique d'un workspace avec le paramètre ligne de commande "-data"

Merci de votre attention.

A disposition pour répondre à vos questions.

/