207 votes

Les classes Java d'Intellij IDEA ne se compilent pas automatiquement lors de la sauvegarde.

Hier, je suis passé d'Eclipse à Intellij.

J'utilise également jRebel avec Websphere Server 7.

Tout semble maintenant fonctionner à peu près correctement, sauf que lorsque je modifie un fichier Java, et frapper la sauvegarde Intellij n'est pas recompiler le fichier, afin que jRebel le récupère.

L'éclipse " Construire automatiquement La fonctionnalité " " a résolu ce problème.

Dans Intellij, je dois frapper CTRL + SHIFT + 9 de recompiler la classe concernée pour que jRebel la récupère. Si des changements sont effectués dans deux fichiers J'ai pour faire cela sur chacun des et comme Intellij utilise le mécanisme de sauvegarde de tout, il est assez difficile de savoir ce qu'il faut recompiler manuellement, ce qui ne m'intéresse pas vraiment non plus.

N'y a-t-il pas un moyen d'obliger Intellij à faire cela tout seul ?

11 votes

Pourquoi ne pas appuyer sur Ctrl + F9 ? Cela va construire l'ensemble du projet et si seulement deux fichiers ont été modifiés, ils seront reconstruits.

2 votes

J'avais peur que cela ne reconstruise tout. Je crois que la valeur par défaut est clear output on rebuild ... donc normalement cela ne fonctionne pas très bien...

5 votes

Elle le fait pas nettoyer avant de construire. C'est une construction incrémentale. Vous avez un autre choix pour reconstruire si vous le souhaitez.

17voto

TonioKnight Points 61

J'ai fini par enregistrer un Macro pour sauvegarder et compiler en une seule étape, et keymap Ctrl+s à elle.

6 votes

@SecretService Peut ne pas convenir à tout le monde, car l'ordre des actions n'est pas défini lorsque plusieurs actions sont associées au même raccourci.

14voto

Niklas Lönn Points 111

J'ai réussi à résoudre ce problème en utilisant des macros.

J'ai commencé à enregistrer une macro :

  • Cliquez sur Édition - Macros - Démarrer l'enregistrement de la macro
  • Cliquez sur Fichier - Enregistrer tout
  • Cliquez sur Build - Make Project
  • Cliquez sur Editer - Macros - Arrêter l'enregistrement de la macro

Donnez-lui un nom utile comme "SaveAndMake".

Maintenant, il suffit de supprimer le raccourci clavier "Enregistrer tout" et d'ajouter le même raccourci clavier à votre macro !

Donc maintenant, à chaque fois que j'enregistre, il enregistre et fait une compilation sale, et jRebel détecte maintenant tous les changements correctement.

0 votes

Je suggérerais de donner à la macro une autre combinaison de touches plutôt que de remplacer la sauvegarde existante - mais c'est tout aussi subjectif.

0 votes

Merci. Comme une "Build" normale (comme suggéré par les autres réponses) n'est même pas suffisante pour moi, j'utilise cette solution pour sauvegarder + reconstruire à chaque fois. Cela me permet de retrouver la sensation d'Eclipse, même si cela consomme beaucoup de ressources...

5voto

Ajay Points 1656

Veuillez suivre attentivement les étapes suivantes pour l'activer.

1) créer un projet Spring Boot avec SB V1.3 et ajouter "Devtools" (1*) aux dépendances

2) invoquez Aide->Trouver une action... et tapez "Registre", dans la boîte de dialogue recherchez "automake" et activez l'entrée " compiler.automake.autoriser.lorsque.l'application.est.en.cours. ", fermer le dialogue

3) activez la compilation en arrière-plan dans Paramètres->Construction, Exécution, Déploiement->Compilateur "Faire le projet automatiquement".

4) Ouvrez la configuration d'exécution de Spring Boot, vous devriez obtenir un message d'avertissement si tout est configuré correctement.

5) Exécutez votre application et modifiez vos classes à la volée.

Veuillez signaler vos expériences et vos problèmes en tant que commentaires à ce numéro.

cliquez ici pour plus d'informations

0 votes

Il est marqué comme étant toujours "En cours", et ne fonctionne pas pour moi.

2voto

keyboardsamurai Points 125

La seule chose qui a fonctionné pour moi dans mon projet maven qui a été affecté par cela est d'ajouter un objectif "test-compile" à la configuration d'exécution de mes tests unitaires. Une solution incroyablement maladroite, mais qui fonctionne.

enter image description here

0 votes

Au moins ça marche :D mais oui, c'est mieux de trouver la source de ce problème

2voto

tworec Points 1676

Intellij échoue discrètement lorsqu'il rencontre un problème de compilation dans un autre module, et la construction automatique n'est alors pas effectuée. Vérifiez donc votre Problems fenêtre

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X