Hier, je suis passé à IntelliJ IDEA d'Eclipse.
J'utilise également JRebel avec WebSphere Server 7.
Tout semble maintenant fonctionner assez bien, sauf que lorsque je modifie un fichier Java et que je clique sur Enregistrer , IntelliJ ne recompile pas le fichier, afin que JRebel le récupère.
La fonctionnalité Eclipse " Build Automatically " a résolu ce problème.
Dans IntelliJ IDEA, je dois appuyer sur CTRL+ SHIFT+ 9pour recompiler la classe appropriée pour que JRebel la récupère. Si des modifications sont apportées à deux fichiers , je dois le faire sur chacun d' entre eux et comme IntelliJ utilise le mécanisme de sauvegarde de tout, il est assez difficile de savoir quoi recompiler manuellement, ce qui ne m'intéresse pas vraiment non plus.
N'y a-t-il pas un moyen de faire en sorte qu'IntelliJ le fasse seul ?
Ctrl
+F9
? Cela construira l'ensemble du projet et si seulement deux fichiers ont été modifiés, ceux-ci seront reconstruits.Réponses:
ACTUALISÉ
Pour les versions d'IntelliJ IDEA 12+, nous pouvons créer automatiquement les sources modifiées si nous utilisons l'option du compilateur externe. La seule chose à faire est de cocher l'option " Construire le projet automatiquement ", située dans les paramètres " Compilateur ":
De plus, si vous souhaitez effectuer un déploiement à chaud, pendant que l'application est en cours d'exécution ou si vous utilisez les outils de développement Spring Boot, vous devez également activer le
compiler.automake.allow.when.app.running
registre. Cela compilera automatiquement vos modifications.En utilisant Ctrl+ Shift+ A(ou ⌘+ Shift+ Asur Mac) tapez
Registry
une fois que la fenêtre de registre est ouverte, recherchez et activezcompiler.automake.allow.when.app.running
, voir ici:Pour les versions antérieures à 12, vous pouvez utiliser le plugin EclipseMode pour que IDEA compile automatiquement les fichiers enregistrés.
Pour plus de conseils, consultez le guide «Migration d'Eclipse vers IntelliJ IDEA» .
la source
Veuillez suivre les deux étapes:
1 - Activez Automake depuis le compilateur
make project automatically
Make Project automatically
fonctionnalité2 - Activez Automake lorsque l'application est en cours d'exécution
Registry
compiler.automake.allow.when.app.running
et activez-la ou cochez la case à côtéRemarque: redémarrez votre application maintenant :)
Remarque: Cela devrait également permettre le rechargement en direct avec les outils de développement Spring Boot.
la source
AVERTISSEMENT
Le plug-in du mode Eclipse est obsolète et n'est pas compatible avec les versions récentes d'IDEA 12+. Si vous l'installez, l'EDI se bloquera à chaque changement de fichier et répondra extrêmement lentement.
IntelliJ IDEA n'utilise pas de compilation automatique, il détecte les erreurs à la volée, pas via le compilateur. Similaire au mode Eclipse sera disponible dans IDEA 12 :
Utiliser
Build
|Make
, il invoque le processus de création incrémentiel qui ne compilera que les fichiers modifiés et dépendants (c'est très rapide).Il existe également une entrée de FAQ qui peut vous aider.
Mise à jour sur la fonction de création automatique : lorsque la configuration d'exécution / débogage est en cours d'exécution,
Make project automatically
n'a aucun effet. Les classes sur le disque ne changeront que leBuild
|Make
. C'est la décision de conception fondamentale car, à notre avis, les changements de classe sur le disque devraient toujours être sous le contrôle de l'utilisateur. La création automatique n'est pas le copieur de la fonction Eclipse, elle fonctionne différemment et son objectif principal est de gagner du temps en attendant que les classes soient prêtes quand elles sont vraiment nécessaires (avant d'exécuter l'application ou les tests). La création automatique ne remplace pas la compilation explicite que vous devez encore déclencher comme dans le cas décrit dans cette question. Si vous recherchez un comportement différent, le plug-in EclipseMode lié dans la FAQ ci-dessus serait un meilleur choix.la source
Vous pouvez créer un keymap
ctrl+s
pour enregistrer ET compiler en une seule étape. Accédez aux paramètres du clavier et recherchezCompile
.la source
Il n'y a en fait aucune différence car les deux nécessitent 1 clic:
La solution la plus simple consiste simplement à s'y habituer. Parce que lorsque vous passez la majeure partie de votre journée dans votre IDE, il vaut mieux avoir des habitudes rapides dans l'une que des habitudes lentes dans plusieurs d'entre elles.
la source
J'ai fini par enregistrer une macro pour la sauvegarder et la compiler en une seule étape, et y ajouter un keymap
Ctrl+s
.la source
J'ai réussi à résoudre ce problème en utilisant des macros.
J'ai commencé à enregistrer une macro:
Nommez-le quelque chose d'utile comme "SaveAndMake".
Maintenant, supprimez simplement la combinaison de touches Enregistrer toutes et ajoutez la même combinaison de touches à votre macro!
Alors maintenant, chaque fois que j'enregistre, il enregistre et fait une compilation sale, et jRebel détecte maintenant toutes les modifications correctement.
la source
Veuillez suivre attentivement ces étapes pour l'activer.
1) créer un projet Spring Boot avec SB V1.3 et ajouter "Devtools" (1 *) aux dépendances
2) invoquez Help-> Find Action ... et tapez "Registry", dans la boîte de dialogue recherchez "automake" et activez l'entrée " compiler.automake.allow.when.app.running ", fermez le dialogue
3) activer la compilation en arrière-plan dans Paramètres-> Construire, Exécution, Déploiement-> Compilateur "Créer un projet automatiquement"
4) ouvrez la configuration d'exécution de Spring Boot, vous devriez recevoir un message d'avertissement si tout est configuré correctement
5) Exécutez votre application, changez vos cours à la volée
Veuillez signaler vos expériences et problèmes en tant que commentaires sur ce problème.
cliquez ici pour plus d'informations
la source
La seule chose qui a fonctionné pour moi dans mon projet maven qui a été affecté par cela est d'ajouter un objectif "test-compilation" à la configuration d'exécution de mes tests unitaires. Solution incroyablement maladroite, mais cela fonctionne.
la source
Intellij échoue silencieusement lorsqu'il rencontre un problème de compilation dans un autre module, puis la construction automatique n'est pas effectuée. Alors vérifiez votre
Problems
fenêtrela source
J'ai eu le même problème. J'utilisais le "mode d'économie d'énergie", qui empêche de compiler de manière incrémentielle et d'afficher des erreurs de compilation.
la source
Utilisez le plugin Reformat and Compile (inspiré du plugin Save Actions d'Alexandre DuBreuil):
https://plugins.jetbrains.com/plugin/8231?pr=idea_ce
Pour le moment, je ne propose qu'un fichier jar, mais c'est la partie la plus importante du code:
la source
Modifiez votre configuration d'exécution / débogage afin que l'option Build soit sélectionnée avant le lancement
Une fois l'option de construction sélectionnée
La solution ci-dessus a fonctionné pour moi tout en travaillant sur ma suite de tests JBehave
la source
Cela ne fonctionnait pas pour moi en raison d'un module inutile dans la structure de mon projet. Les tests ont été exécutés en utilisant l'autre module, je suppose.
Je ne sais pas comment ça s'est passé comme ça, mais le supprimer a résolu le problème.
Assurez-vous que vos paramètres d'exécution / débogage utilisent le module que vous créez avec l'enregistrement automatique.
Ex: voir le module dans
Vous pouvez modifier les modules dans Structure du projet - Modules
la source
J'ai eu le même problème. Je pense qu'il serait approprié de vérifier si votre classe peut être compilée ou non. Cliquez sur recompiler (Ctrl + Maj + F9 par défaut). Si cela ne fonctionne pas, vous devez rechercher pourquoi il ne compile pas.
Dans mon cas, le code ne s'autocompilait pas car il y avait des erreurs cachées lors de la compilation (elles n'étaient pas affichées dans les journaux et maven clean-install fonctionnait). La cause principale était une structure de projet incorrecte -> Configuration des modules, donc Intellij Idea n'a pas pu le construire selon cette configuration.
la source
J'ai eu le même problème et aussi une icône de fichier de problème dans intellij, donc j'ai supprimé le
.idea
dossier et réimporter le projet a résolu mon problème.la source
J'obtenais une erreur: certains jars ne sont pas dans classpath.Je supprime donc simplement le jar corrompu et perrform ci-dessous
la source
Pas assez de points pour commenter une réponse existante, mais comme certaines personnes ci-dessus, j'ai fini par ajouter une macro et un keymap pour Organiser les importations / Format / SaveAll / FastReload (F9) / Synchronize .
La synchronisation est ajoutée car elle semble être la seule façon de voir les mises à jour des ressources modifiées par des outils / observateurs de construction externes (c'est-à-dire, Webpack).
Le processus est plus lent qu'éclipse - et pour l'actualisation du fichier externe, il faut souvent exécuter la commande plusieurs fois - mais supposons que je puisse vivre avec.
la source