Tldr : Vous pouvez essayer de modifier la ligne de commande comme suit :
spring-boot:run -Dspring-boot.run.fork=false
Explication :
Lors de l'exécution de l'application en mode débogage, le débogueur IntelliJ s'attache au processus Java qu'il démarre lui-même (en ajoutant les paramètres appropriés, -agentlib:jdwp
etc., sur la ligne de commande Java).
Très souvent, ces processus Java peuvent alors créer une nouvelle instance, qui est pas obtient les mêmes paramètres et, parce qu'il se trouve dans un processus distinct, il n'est pas connecté au débogueur. Cela peut prêter à confusion.
En spring-boot:run
L'objectif de Maven, en plus de créer une nouvelle JVM, crée encore plus de confusion, car il crée parfois une fourche et parfois non, en fonction des options qu'il reçoit, entre autres choses. Une partie de ces informations peut être trouvée dans la page la documentation mais ce n'est pas toujours évident.
Vous devez d'abord vérifier si le processus Java est réellement débogué. Lorsque vous démarrez l'application à partir d'IntelliJ, vous verrez des messages défiler dans l'onglet Run / Debug. En haut, il y a la ligne de commande qui est exécutée. Elle doit contenir les paramètres du débogueur ( -agentlib:jdwp
etc) et il devrait être suivi d'un message disant "Connected to the target VM", ce qui est le débogueur confirmant qu'il est en contact.
Ensuite, si vous n'êtes pas sûr que la JVM a été forkée, vous pouvez vérifier la liste des processus de votre système d'exploitation, par exemple sous MacOS et *nix, vous pouvez utiliser la commande suivante ps aux | grep java
. Les processus Java ont généralement une liste de paramètres gigantesque, dont la plus grande partie est le chemin d'accès à la classe. L'application en cours d'exécution se trouve à la toute fin de la ligne de commande. Si la JVM a été forkée, vous avez le processus qui exécute l'objectif Maven, et un autre qui exécute l'application Spring. Votre débogueur sera alors connecté au processus que vous êtes en train d'exécuter. pas et vos points d'arrêt ne fonctionneront pas.
Pour arrêter spring-boot:run
de forkage, vous pouvez utiliser l'option fork
ci-dessus.
1 votes
L'avez-vous exécuté en mode débogage ?
1 votes
Oui, je l'ai fait.....
1 votes
Voici un plugin maven pour Spring Boot docs.spring.io/spring-boot/docs/current/maven-plugin/examples/ L'avez-vous essayé ?
1 votes
J'ai le plugin spring-boot-maven. Mais je n'ai pas de configuration définie dans pom.xml. Je devrais essayer celui-là, si j'ai bien compris mm....
1 votes
@VilleMiekk-oja, si tout est configuré correctement, ouvrez l'onglet "Maven Project" sur le côté droit, et choisissez l'option
bootRun
en cliquant avec le bouton droit de la souris.0 votes
ERROR : transport error 202 : bind failed : Adresse déjà utilisée. La dernière option (adresse), quelle adresse dois-je utiliser ? La même que celle utilisée par l'application, ou celle spécifiée dans le lien ? (5005)
0 votes
@VilleMiekk-oja, il semble que vous n'ayez pas pu fermer clairement le démarrage précédent de l'application, ou que le port que vous essayez d'utiliser soit occupé.
0 votes
Laissez-nous poursuivre cette discussion dans le chat .
0 votes
J'ai la même chose occasionnellement dans Ultimate. Je ne suis pas sûr de ce que c'est, peut-être un processus encore en cours, mais normalement quitter et redémarrer IJ aide.