J'ai une application Spring Boot qui fonctionne bien avec Intellij IDE. c'est-à-dire que j'ai démarré la classe Application qui a la méthode principale qui délègue à SpringApplication.run. Tout fonctionne très bien sauf le hotswap. Lorsque je change de source, je suis obligé de redémarrer l'application. Même si je démarre l'application en mode débogage, je ne vois pas le hotswap fonctionner. J'ai pu voir que les paramètres de débogage d'Intellij ont activé le hotswap.
Mon observation montre que lorsque j'exécute l'application Springboot, le chemin de classe utilisé est mon
/projets/MonProjet /cours/production /....
Fichiers sous classes/production
ne sont pas mis à jour lorsque je modifie le code. Intellij IDE compile les fichiers mais ne met pas à jour le répertoire classes/production. Comment puis-je faire fonctionner le hotswap avec IntelliJ IDE pour Spring-Boot?
J'ai découvert la cause profonde. Cela n'a rien à voir avec Spring-boot. Lors de la modification de mes fichiers sources groovy, les fichiers n'étaient pas automatiquement compilés.
Pour recompiler les fichiers modifiés et les échanger:
Ctrl+Shift+F9
sous WindowsCmd+Shift+F9
sur MacUne solution qui utilise devTools fonctionne:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Ouvrez les paramètres -> Build-Execution-Deployment -> Compiler et activez:
Build Project Automatically.
presse ctrl+shift+A
et recherchez registry
. Dans le registre, activez:
compiler.automake.allow.when.app.running
J'espère que ça aide !
Les références :
Utilisez à ressort . Cela fonctionne très bien avec le rechargement du bean. C'est une alternative gratuite à JRebel.
Une autre façon consiste à utiliser DCEVM ou hotswapagent
Étape 1: Ajouter la dépendance des outils de développement
Maven.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
Gradle.
dependencies {
compile("org.springframework.boot:spring-boot-devtools")
}
Étape 2: Allez dans Fichier | Paramètres | Construction, exécution, déploiement | Compilateur
activer Générer automatiquement le projet & Appliquer & [~ # ~] ok [~ # ~]
Étape 3: Appuyez sur la touche de raccourci Ctrl + Maj + A & Rechercher Registre mot-clé et appuyez sur Entrée
Activez complier.automake.allow.when.app.running et cliquez sur Fermer Bouton
Étape 4: Désactivez le cache sur votre navigateur Web préféré
Étape 5: terminé !!!
J'ai également remarqué le même problème. Je suis sur Intellij 13.1.1. et pour cela d'échanger la classe changée. Je dois exécuter l'application en mode débogage, puis après avoir changé la classe, sélectionnez "Exécuter-> Recharger les classes modifiées" manuellement.
J'ai également le débogueur réglé sur hotswap comme indiqué dans http://www.jetbrains.com/idea/webhelp/reloading-classes.html mais ne semble pas fonctionner.
Quoi qu'il en soit, au moins le menu manuel "Exécuter-> Recharger les classes modifiées" fonctionne.
Dans mon cas, même après avoir ajouté les outils de développement Spring Boot et vérifié le projet de génération automatiquement, cela ne fonctionnait pas. Ce qui manquait était ceci:
Accédez à la configuration d'exécution du projet.
Réglez l'action on'Update 'et' On frame désactivation 'sur' Update classes and resources '. Et ça a fonctionné comme un charme.
Vous pouvez utiliser l'une des méthodes suivantes pour recharger automatiquement les modèles Thymeleaf:
Je recommande montre Gulp car il est plus facile à configurer et fonctionne très bien:
var gulp = require('gulp'),
watch = require('gulp-watch');
gulp.task('watch', function () {
return watch('src/main/resources/**/*.*', () => {
gulp.src('src/main/resources/**')
//replace with build/resources/main/ for netBeans
.pipe(gulp.dest('out/production/resources/'));
});
});
gulp.task('default', ['watch']);
Entrez maintenant la commande suivante dans votre terminal pour démarrer gulp watch:
$ gulp
//OR
$ gulp watch
J'ai écrit un article de blog sur rechargement automatique des modèles Thymeleaf sans redémarrage dans IntelliJ IDE .