đĄ IntelliJ IDEA â Guide, FonctionnalitĂ©s & Plugins
Guide complet IDEO-Lab pour maĂźtriser l'IDE de JetBrains, du code au debug.
Vue d'ensemble
Qu'est-ce qu'IntelliJ ? IDE, JetBrains, JVM.
IDE JetBrains Java KotlinCommunity vs Ultimate
Comparaison des éditions (Gratuit vs Payant).
Community (Free) Ultimate (Paid) SpringInstallation (Toolbox)
Toolbox App (reco), Snap/Flatpak, Standalone.
Toolbox snap Windows macOSStructure Projet & UI
Projets, Modules, .idea, src, SDK.
"Search Everywhere"
Shift+Shift, Ctrl+N, Ctrl+Shift+N.
Run/Debug Configs
Gérer les configurations d'exécution et de debug.
Run Debug ApplicationĂditeur & Intentions
Smart completion, Alt+Entrée, Inspections.
Refactoring
Rename (Shift+F6), Extract (Ctrl+Alt+M/V).
Navigation (Usages)
Find Usages (Alt+F7), Go to Declaration (Ctrl+B).
Le Débogueur
Breakpoints, Stepping (F7/F8), Evaluate.
Debugger Breakpoints F8Intégration Git
Commit, Push, Pull, Branches, Merge (UI).
Git VCS Ctrl+KBuild Tools
Intégration Maven & Gradle (Sync, Tasks).
Maven Gradle SyncPlugins (Marketplace)
Gestion des plugins, plugins essentiels.
Plugins Marketplace SonarLintOutils BDD (Ultimate)
Client BDD (type DataGrip), Query Console.
Database SQL UltimateĂcosystĂšme JetBrains
PyCharm, WebStorm, Settings Sync.
PyCharm WebStorm Settings SyncProfiling (Ultimate)
Analyse CPU & Mémoire (Flame graphs).
Profiler CPU MemoryOutils (Terminal, Scratch)
Terminal intégré, Fichiers "brouillons".
Terminal Scratch FilesCheat-sheet
Top 10 des raccourcis indispensables.
Shortcuts RaccourcisL'IDE "Intelligent" de JetBrains
IntelliJ IDEA est un Environnement de Développement Intégré (IDE) développé par la société JetBrains.
Il est écrit en Java et Kotlin et est l'outil de prédilection pour le développement JVM (Java, Kotlin, Scala, Groovy).
Polyglotte grĂące aux Plugins
Bien que son cĆur soit Java, IntelliJ est une plateforme. L'Ă©dition Ultimate (payante) intĂšgre les fonctionnalitĂ©s de tous les autres IDE de JetBrains (PyCharm, WebStorm, GoLand, etc.) via des plugins.
Il est réputé pour son "intelligence" : sa capacité à comprendre le code, à faire des suggestions pertinentes (refactoring) et à automatiser les tùches de développement.
Flux de travail
1. Création/Importation
â (Nouveau Projet, ou import Maven/Gradle)
âŒ
2. Indexation
â (IntelliJ analyse tout le code et ses dĂ©pendances)
âŒ
3. Codage
â (Ăditeur, Auto-complĂ©tion, Alt+EntrĂ©e)
âŒ
4. Refactoring
â (Renommer, Extraire, DĂ©placer)
âŒ
5. Build
â (Via Maven/Gradle ou le builder interne)
âŒ
6. Run / Debug
â (Lancer l'app, poser des breakpoints)
âŒ
7. Commit (VCS)
â (IntĂ©gration Git)Pourquoi IntelliJ est-il dominant ?
IntelliJ a largement dépassé des concurrents historiques (comme Eclipse) grùce à plusieurs points clés :
- Compréhension du code (Indexation) : IntelliJ crée un "index" de l'ensemble du projet, lui permettant une navigation et un refactoring quasi-instantanés et 100% fiables.
- Refactoring "Safe" : Quand vous renommez (
Shift+F6) une méthode, IntelliJ trouve et met à jour toutes ses utilisations dans le projet (code, commentaires, strings...), de maniÚre sécurisée. - Ergonomie (UI/UX) : L'interface est dense mais cohérente. Tout est centré sur la productivité (ex:
Shift+Shiftpour "Search Everywhere"). - Intégrations : Les outils (Git, Maven/Gradle, Terminal) sont intégrés de maniÚre fluide, évitant de devoir quitter l'IDE.
- ĂcosystĂšme JetBrains : L'expĂ©rience est la mĂȘme, que vous passiez Ă PyCharm (Python) ou WebStorm (Web), facilitant la polyvalence.
Le choix de l'édition est crucial. La version "Community" est gratuite et open-source, mais "Ultimate" est nécessaire pour le développement web et d'entreprise (Frameworks).
| Fonctionnalité | Community Edition (Gratuit) | Ultimate Edition (Payant) |
|---|---|---|
| Langages JVM | Oui (Java, Kotlin, Groovy, Scala) | Oui |
| Android | Oui (via plugin) | Oui |
| Build Tools | Oui (Maven, Gradle, Ant) | Oui |
| VCS (Git) | Oui (Git, SVN, Mercurial) | Oui |
| Frameworks Java/Kotlin (Spring, Jakarta EE, Quarkus...) | Non | Oui (Clé) |
| Web (JS, TypeScript) (React, Angular, Vue.js) | Non | Oui (Clé) (IntÚgre WebStorm) |
| Python, Ruby, Go... | Non | Oui (via plugins) |
| Outils Base de Données | Non | Oui (IntÚgre DataGrip) |
| Profiler (CPU, Mémoire) | Non | Oui |
En résumé : Si vous faites du Spring Boot, du développement web (React/Angular) ou si vous avez besoin des outils BDD/Profiling, Ultimate est indispensable.
La JetBrains Toolbox App
C'est la méthode d'installation recommandée par JetBrains pour tous les OS (Windows, macOS, Linux).
- Téléchargez "Toolbox App" depuis le site de JetBrains.
- Installez-la.
- Depuis la Toolbox, cliquez sur "Install" à cÎté de "IntelliJ IDEA Ultimate" (ou Community).
Avantages de la Toolbox
- Mises Ă jour faciles : Met Ă jour l'IDE en un clic.
- Rollbacks : Si une mise à jour pose problÚme, vous pouvez revenir à la version précédente instantanément.
- Gestion centralisĂ©e : GĂšre tous vos IDE JetBrains (PyCharm, WebStorm...) au mĂȘme endroit.
- Nettoyage : GĂšre proprement les anciennes versions.
Installation Standalone
Vous pouvez télécharger les installeurs .exe (Windows) ou .dmg (macOS) directement.
Linux (Snap / Flatpak)
Si vous n'utilisez pas la Toolbox, les paquets Snap sont la méthode préférée.
# Installer Community sudo snap install intellij-idea-community --classic # Installer Ultimate sudo snap install intellij-idea-ultimate --classic
Configuration de la RAM (Heap Size)
IntelliJ est gourmand en RAM car il indexe votre code. Si vous avez 16Go+ de RAM, il est recommandé d'augmenter la mémoire allouée à l'IDE pour de meilleures performances sur les gros projets.
1. Dans l'IDE, ouvrez "Search Everywhere" (Shift+Shift) 2. Tapez "Edit Custom VM Options" et ouvrez-le. 3. Modifiez la ligne `-Xmx` (Heap size maximum). # Exemple : 4Go de RAM allouée -Xms1024m -Xmx4096m
Via la Toolbox : Vous pouvez aussi régler cela dans la Toolbox (Settings de l'IDE > Configuration > Maximum heap size).
Projets vs Modules
La hiérarchie dans IntelliJ est : Projet > Module(s).
- Projet : Le conteneur de plus haut niveau. Représente souvent un "repository" Git.
- Module : Un composant (ex: un microservice, une lib, une app). Un projet peut avoir plusieurs modules (ex: `api`, `core`, `web`).
Structure de Fichiers (Importante)
mon-projet/ âââ .idea/ â âââ (Fichiers de config d'IntelliJ. â Ă mettre dans .gitignore) â âââ mon-module.iml â (Fichier de dĂ©finition du module. â Ă mettre dans .gitignore) â âââ src/ â âââ main/ â â âââ java/ â â âââ resources/ â âââ test/ â âââ java/ â âââ resources/ â âââ pom.xml (ou build.gradle)
Le Project SDK (JDK)
IntelliJ a besoin de savoir quel JDK (Java Development Kit) utiliser pour compiler votre code.
Vous le définissez dans File > Project Structure... > Project.
IntelliJ peut mĂȘme tĂ©lĂ©charger et installer des JDK pour vous (ex: Temurin, Amazon Corretto).
Vues Principales (Tool Windows)
- 1. Project (Alt+1) : L'arbre de vos fichiers.
- 7. Structure (Alt+7) : Les méthodes/champs de la classe actuelle.
- 9. Git (Alt+9) : L'interface de version control.
- 4. Debug (Alt+5) : Le débogueur.
- Maven/Gradle (Barre latérale) : Les tùches du build tool.
La navigation est la plus grande force d'IntelliJ. Vous ne devriez presque jamais utiliser la souris pour naviguer.
LE Raccourci : Shift + Shift
Search Everywhere (Double Shift) est le couteau suisse. Il ouvre une popup qui cherche partout :
- Classes
- Fichiers
- Symboles (Méthodes, Champs)
- Actions de l'IDE (ex: "Settings", "Git Pull")
- Texte
Navigation Ciblée (Plus rapide)
| Raccourci | Action | Description |
|---|---|---|
Ctrl + N | Go to Class | Tapez le nom d'une classe pour y sauter. |
Ctrl + Shift + N | Go to File | Tapez le nom d'un fichier (ex: .xml, .properties). |
Ctrl + Shift + Alt + N | Go to Symbol | Tapez le nom d'une méthode ou d'un champ. |
Ctrl + F | Find | Chercher dans le fichier actuel. |
Ctrl + Shift + F | Find in Files | Chercher du texte dans tout le projet. |
Une "Run Configuration" est un "profil" qui dit à IntelliJ comment exécuter votre code. (Ex: quelle classe main() lancer ? Quelles variables d'environnement ?)
Création
Vous pouvez les créer manuellement (Edit Configurations...) ou automatiquement.
Méthode rapide :
- Trouvez votre classe avec une méthode
public static void main(String[] args). - Cliquez sur l'icĂŽne "Play" (flĂšche verte) dans la marge.
- Choisissez "Run" ou "Debug".
IntelliJ crée et sauvegarde automatiquement la configuration pour vous.
Options Courantes
En modifiant une configuration, vous pouvez régler :
- Main class : La classe à exécuter.
- Program arguments : Les
args[]passés à votremain(). - VM options : (ex:
-Xmx2g,-Dmy.property=value). - Environment variables : Variables d'environnement.
- Working directory : Le dossier depuis lequel l'app est lancée.
Smart Completion (Ctrl + Shift + Espace)
IntelliJ a deux types de complétion :
- Basic (
Ctrl+Espace) : Montre toutes les possibilités (alphabétique). - Smart (
Ctrl+Shift+Espace) : Ne montre que les possibilités logiques. Filtre par type de retour attendu.
String user = ... // Si vous tapez `user.` et `Ctrl+Shift+Espace` // dans une condition `if()`, // IntelliJ ne proposera que des méthodes // qui retournent un boolean (ex: startsWith(), isEmpty()).
Intentions (Alt + Entrée)
C'est le raccourci le plus important. C'est la "baguette magique".
Quand vous voyez une ampoule (jaune ou rouge) ou que votre curseur est sur du code souligné, appuyez sur Alt+Entrée.
IntelliJ vous proposera des actions contextuelles ("Intentions") :
- Correction d'erreur : Importer une classe, créer une méthode qui n'existe pas...
- Suggestion : "Cette boucle
forpeut ĂȘtre remplacĂ©e par unstream()." - Refactoring : "Assigner Ă une variable", "Inverser le
if". - Injection : Injecter du JSON ou du SQL dans un String.
Inspections & Analyse Statique
IntelliJ analyse votre code en permanence ("Inspections") pour trouver des "code smells" (problĂšmes potentiels, code mort, mauvaises pratiques).
- Code mort : Variable ou méthode jamais utilisée (grisée).
- Avertissement : (ex:
if(var == true), IntelliJ suggÚreif(var)). - Performance : (ex: "Concaténation de String dans une boucle").
- Bugs potentiels : (ex: "
NullPointerExceptionpossible ici").
La barre de scroll à droite vous montre l'état de santé du fichier (jaune = warning, rouge = erreur).
Le refactoring est "safe" car IntelliJ comprend la structure du code. Vous pouvez tout faire depuis le menu Refactor (Ctrl+Alt+Shift+T) ou avec des raccourcis.
| Raccourci | Action | Description |
|---|---|---|
Shift + F6 | Rename | Renomme l'élément (variable, méthode, classe, fichier) et toutes ses références. |
Ctrl + Alt + M | Extract Method | Sélectionnez un bloc de code et transformez-le en une nouvelle méthode. |
Ctrl + Alt + V | Extract Variable | Extrait une expression dans une variable locale. |
Ctrl + Alt + P | Extract Parameter | Transforme une variable locale en paramÚtre de méthode. |
Ctrl + Alt + F | Extract Field | Transforme une variable locale en champ de classe (attribut). |
Ctrl + F6 | Change Signature | Modifie les paramÚtres, le type de retour ou le nom d'une méthode. |
F6 | Move | Déplace une classe dans un autre package. |
Breakpoints (Points d'arrĂȘt)
Cliquez dans la marge (Ă gauche des numĂ©ros de ligne) pour poser un breakpoint (point rouge). Quand le code s'exĂ©cute en mode Debug, il s'arrĂȘtera Ă cet endroit.
Types de Breakpoints (Clic droit sur le point) :
- Conditionnel : Ne s'arrĂȘte que si une condition est vraie (ex:
i == 10). - Exception : S'arrĂȘte quand une exception spĂ©cifique est levĂ©e (
Ctrl+Shift+F8).
Stepping (Navigation pas-Ă -pas)
Une fois arrĂȘtĂ© sur un breakpoint, la fenĂȘtre "Debug" (Alt+5) s'ouvre. Utilisez les boutons de "stepping" :
F8(Step Over) : ExĂ©cute la ligne actuelle et passe Ă la suivante (sans entrer dans les mĂ©thodes).F7(Step Into) : Si la ligne est un appel de mĂ©thode, entre dans cette mĂ©thode.Shift + F8(Step Out) : Sort de la mĂ©thode actuelle et retourne Ă l'appelant.Alt + F9(Run to Cursor) : Continue l'exĂ©cution jusqu'Ă la ligne oĂč est votre curseur.
Variables
La vue "Variables" dans le débogueur vous montre l'état de toutes les variables locales et des champs (this) en temps réel.
Evaluate Expression (Alt + F8)
C'est une "calculatrice" de debug. En pause, ouvrez-la (Alt+F8) et testez n'importe quelle expression Java (ex: user.getName().toUpperCase()) pour voir son résultat dans le contexte actuel.
Watches
Vous pouvez ajouter des expressions (comme celles de "Evaluate") à la vue "Watches". Elles seront recalculées à chaque pas, vous permettant de suivre l'évolution d'une valeur complexe.
L'intégration VCS (Version Control System) d'IntelliJ est si puissante que beaucoup de développeurs n'utilisent plus jamais la ligne de commande Git.
| Raccourci | Action | Description |
|---|---|---|
Ctrl + K | Commit | Ouvre la fenĂȘtre de Commit. Montre les fichiers modifiĂ©s, permet d'Ă©crire le message. |
Ctrl + Shift + K | Push | Pousse les commits locaux. |
Ctrl + T | Update Project (Pull) | Tire les changements (Pull). Vous pouvez choisir Merge ou Rebase. |
Alt + 9 | Git Tool Window | Ouvre la vue "Git", qui montre l'historique (Log) du projet et des branches. |
Ctrl + ` (Backtick) | VCS Operations | Menu popup rapide (Commit, Push, Pull, New Branch...). |
Workflow de Branches
En bas à droite de l'écran, vous voyez la branche actuelle. Cliquer dessus permet de :
- Créer une nouvelle branche (
New Branch). - Changer de branche (
Checkout). - Fusionner (
Merge) ou Rebaser (Rebase) une branche dans la vĂŽtre.
IntelliJ s'intĂšgre nativement avec Maven et Gradle. Il ne remplace pas le fichier pom.xml ou build.gradle, il le lit.
La FenĂȘtre "Build Tool"
Une fenĂȘtre d'outil (Ă droite) apparaĂźt pour Maven ou Gradle. Elle permet de :
- Voir l'arbre des dépendances (et les conflits).
- Voir le "Lifecycle" (Maven) ou les "Tasks" (Gradle).
- Lancer une tĂąche (ex:
clean,install,build) en double-cliquant.
Synchronisation (Sync / Re-import)
Quand vous modifiez votre pom.xml (ex: ajout d'une dépendance), IntelliJ détecte le changement.
Un petit icĂŽne (M) ou (G) apparaĂźt. Vous devez cliquer sur "Load Maven Changes" (ou "Sync Gradle") pour qu'IntelliJ :
- Télécharge la nouvelle dépendance.
- L'ajoute au classpath du projet.
- Indexe son contenu (pour l'auto-complétion).
Les plugins sont le cĆur de l'Ă©cosystĂšme IntelliJ. Ils ajoutent le support de langages, de frameworks ou des outils de productivitĂ©.
Gérez-les via File > Settings > Plugins.
Plugins Essentiels (Recommandés)
| Plugin | Description |
|---|---|
| SonarLint | Analyse statique "on-the-fly" pour détecter les bugs, "code smells" et vulnérabilités (connexion SonarQube). |
| Key Promoter X | Vous agace (gentiment) quand vous utilisez la souris pour une action qui a un raccourci clavier. TrÚs éducatif. |
| .env files support | Ajoute la coloration syntaxique et la complétion pour les fichiers .env. |
| GitToolBox | Affiche le "blame" (auteur de la ligne) directement dans l'éditeur (inline). |
| Rainbow Brackets | Colorise les parenthĂšses/accolades/crochets pour voir les paires correspondantes. |
| Docker | (Intégré dans Ultimate) Gestion des conteneurs, Dockerfiles, docker-compose. |
Note : Fonctionnalité réservée à IntelliJ Ultimate. (La version Community n'a pas cet outil).
IntelliJ Ultimate intĂšgre l'IDE de base de donnĂ©es DataGrip. C'est un client SQL extrĂȘmement puissant qui remplace DBeaver, SQuirreL, etc.
FenĂȘtre "Database"
Une fenĂȘtre d'outil (droite) "Database" vous permet de :
- Configurer des "Data Sources" (PostgreSQL, MySQL, Oracle, SQL Server...).
- Naviguer dans les schémas, tables, vues, procédures.
- Modifier les données directement dans un tableau (type Excel).
- Générer des diagrammes E/R (schémas).
La "Query Console"
Vous pouvez ouvrir une "Query Console" (console de requĂȘte) pour n'importe quelle data source.
- Auto-complétion SQL contextuelle (connaßt vos tables et colonnes).
- Refactoring SQL (ex:
Shift+F6pour renommer un alias). - ExĂ©cution de requĂȘtes (
Ctrl+EntrĂ©e). - Historique local de toutes les requĂȘtes jouĂ©es.
- Injection de code : Peut détecter du SQL dans vos strings Java (
Alt+Entrée) et vous laisser l'éditer dans cette console.
L'Ă©cosystĂšme JetBrains est basĂ© sur la plateforme IntelliJ. Tous les IDE partagent la mĂȘme base, les mĂȘmes raccourcis et la mĂȘme philosophie.
Les IDE Spécialisés
Si vous n'avez pas IntelliJ Ultimate, vous pouvez utiliser ces IDE spécialisés :
- PyCharm : Pour Python (concurrent de VS Code).
- WebStorm : Pour JavaScript, TypeScript, React, Angular (concurrent de VS Code).
- GoLand : Pour Go.
- DataGrip : L'outil BDD seul.
- PhpStorm : Pour PHP.
- Android Studio : (Basé sur IntelliJ Community) Pour le développement Android.
Settings Sync
IntelliJ (et les autres IDE) propose une fonction "Settings Sync" (via votre compte JetBrains) pour synchroniser tous vos paramĂštres :
- Plugins installés
- Raccourcis clavier personnalisés
- ThĂšmes et couleurs
- Templates de code
Ceci vous permet d'avoir la mĂȘme configuration sur votre PC de bureau et votre laptop.
Note : Fonctionnalité réservée à IntelliJ Ultimate.
Le "Profiler" vous permet d'analyser la performance de votre application (ce qui est lent, ce qui consomme de la mémoire) sans quitter l'IDE. Il remplace des outils externes comme JVisualVM ou JProfiler.
Comment lancer ?
Au lieu de cliquer sur "Run" (Shift+F10) ou "Debug" (Shift+F9), vous cliquez sur "Run with Profiler" (Shift+Alt+F10).
Modes de Profiling
- CPU Sampling : Mode par défaut, faible impact. "Sonde" l'application à intervalle régulier pour voir quelles méthodes sont sur la stack. Idéal pour trouver les "hotspots" (méthodes lentes).
- CPU Tracing : Plus lourd. Enregistre chaque entrée/sortie de méthode. TrÚs précis mais ralentit l'application.
- Memory : Analyse l'allocation des objets dans la Heap (le tas). Permet de trouver les fuites de mémoire (Memory Leaks).
Flame Graph
Le rĂ©sultat de l'analyse CPU est souvent montrĂ© sous forme de "Flame Graph" (graphique en flammes), qui permet de visualiser d'un coup d'Ćil quelles piles d'appels consomment le plus de CPU.
Terminal (Alt + F12)
IntelliJ intĂšgre un terminal systĂšme (bash, zsh, PowerShell...) directement dans l'IDE.
Avantages :
- Se lance directement dans le dossier du projet.
- Partage les variables d'environnement de l'IDE.
- Permet de lancer des commandes (Git, Maven, npm...) sans quitter la fenĂȘtre.
Scratch Files (Brouillons)
Raccourci : Ctrl + Alt + Shift + Insert
Un "Scratch File" (fichier brouillon) est un fichier temporaire qui n'appartient pas à votre projet. Il n'est pas dans l'arbre de fichiers, pas versionné, mais sauvegardé par l'IDE.
Cas d'usage :
- Tester un petit algo Java (Scratch de type .java).
- Prendre des notes (Scratch de type .md ou .txt).
- Formater un JSON ou un XML copié du web (Scratch de type .json).
- Ăcrire une requĂȘte SQL temporaire (Scratch de type .sql).
Top 10 (Indispensables)
1. Shift + Shift
(Search Everywhere)
2. Alt + Entrée
(Show Intentions / "Baguette Magique")
3. Ctrl + N
(Go to Class)
4. Ctrl + Shift + N
(Go to File)
5. Alt + F7
(Find Usages)
6. Shift + F6
(Rename / Refactor)
7. Ctrl + B
(Go to Declaration)
8. F8
(Step Over - Debug)
9. Ctrl + K
(Commit - Git)
10. Ctrl + Espace
(Basic Completion)Ădition & Refactor
Ctrl + W / Ctrl + Shift + W (Extend / Shrink Selection) Ctrl + D (Duplicate Line) Ctrl + Y (Delete Line) Ctrl + / (Comment / Uncomment Line) Ctrl + Alt + M (Extract Method) Ctrl + Alt + V (Extract Variable) Ctrl + Alt + L (Reformat Code)
Navigation & Vues
Alt + 1 (Project View) Alt + 5 (Debug View) Alt + 9 (Git View) Alt + F12 (Terminal) Ctrl + E (Recent Files)
