J'utilise IntelliJ 13.1 sur Linux et j'essaie de créer une application de base REST en suivant l'exemple http://spring.io/guides/gs/spring-boot/
Lorsque j'exécute le bootRun cible à partir d'IntelliJ, le serveur Tomcat intégré est démarré et tout fonctionne correctement.
10:09:35: Executing external task 'bootRun'...
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:bootRun
Mais arrêter l'exécution n'affecte pas la tâche de gradle:
10:11:40: External task execution finished 'bootRun'.
Je peux toujours accéder à l'instance Tomcat sur le port configuré. Seule la fermeture d'IntelliJ détruira le processus.
J'ai cherché sur ce sujet mais je n'ai trouvé aucune réponse raisonnable. Je me demande si c'est un
Je sais que cette réponse a déjà été donnée, mais comme il s'agit du premier sujet de recherche dans Google, j'ai pensé partager une alternative avec laquelle je suis allé et que je n'ai pas trouvé dans les autres sujets que j'ai lus.
Mon problème principal avec cette terminate
était que je changeais toujours quelque chose dans mes classes, que je devais redémarrer le serveur et que cela échouait donc je devais parfois stop/start
le serveur.
Pour éviter cela, j'utilise spring-boot-devtools . Fondamentalement:
Les applications qui utilisent spring-boot-devtools redémarrent automatiquement chaque fois que les fichiers du chemin de classe sont modifiés.
Le seul problème est que, sur Intellij, seul le projet makes
est cliqué si vous cliquez sur Build > Make Project
. Vous devez donc le configurer pour créer automatiquement ou ne pas cliquer sur make
.
Pour l'utiliser, ajoutez simplement la dépendance à votre build.gradle / pom.xml
: compile('org.springframework.boot:spring-boot-devtools')
J'ai trouvé cela très utile en développement.
J'utilise IntelliJ sur Mac, l'exécution de l'application de démarrage Spring posait le même problème. À chaque fois que je lance l'application dans Terminal et que j'utilise CTRL + Z, le terminal s'exécute pour exécuter l'application. Mais lorsque je lance l'application à nouveau dans le même terminal, une erreur s'affiche en indiquant que le port 8080 était utilisé. Je viens d'essayer l'option de fermer la session du terminal (clic droit -> sélectionner -> fermer la session). Cela ferme le terminal. Lorsque je clique à nouveau sur l'option de terminal et que je lance l'application, tout se passe bien.