Comment déboguer une application spring-boot avec IntelliJ IDEA community Edition?

J’ai des difficultés à déboguer une application Java Spring-Boot avec IntelliJ IDEA community Edition. Le principal problème est que l’EDI ne s’arrête pas sur un point d’arrêt, même le programme s’exécute sûrement à travers celui-ci. Comment puis-je faire en sorte que l’IDEI IntelliJ s’arrête sur le point d’arrêt?

En guise d’informations supplémentaires, voici mes configurations d’exécution:

Configuration Maven avec une commande comme: spring-boot: run. Avant le lancement, je construis le projet.

Pour moi, ces étapes fonctionnent:

  1. Sélectionnez le menu Exécuter -> Modifier les configurations …
  2. Créer une nouvelle configuration à distance. Par défaut, vous n’avez pas besoin de modifier les parameters:
    -agentlib: jdwp = transport = dt_socket, serveur = y, suspendre = n, adresse = 5005 . Mais si vous souhaitez par exemple suspendre la machine virtuelle Java avant de vous connecter, vous pouvez modifier suspend = y . Ou vous pouvez changer de port etc.
  3. Copiez la ligne de commande en fonction de la version de votre machine virtuelle Java et enregistrez la configuration.
  4. Dans la fenêtre Terminal, exécutez votre application avec (dans le cas d’utilisation Maven et JVM 1.5 et versions ultérieures) mvn clean spring-boot: exécution -Drun.jvmArguments = “- agentlib: jdwp = transport = dt_socket, serveur = y, suspendre = n, adresse = 5005 “
  5. Connectez-vous à votre application en exécutant votre configuration à distance créée précédemment à l’étape 2. Vous pouvez maintenant déboguer votre application.

La seule approche qui a fonctionné pour moi consiste à exécuter ou à déboguer une application directement à partir d’Intellij Idea. Juste classe ouverte qui contient

  public static void main(Ssortingng[] args) { SpringApplication.run(MyApp.class, args); } 

Et cliquez le bouton droit de la souris-> Déboguer mon application

Le problème est signalé ici

vous pouvez le résoudre en envoyant le paramètre fork = false au but maven.

par exemple;

 spring-boot:run -Dfork=false 

note: ceci est une solution de contournement

La réponse de piphonom est bonne, mais vous devez en faire un peu plus, ce qui consiste à append le jvmArguments au plugin maven comme ceci

  org.springframework.boot spring-boot-maven-plugin   -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005    

pour plus d’informations sur le débogage à distance pour le projet de démarrage du spring, lisez ceci

Le seul moyen de le faire fonctionner était de créer une configuration de débogage séparée et distante.

Donc, allez à éditer les configurations-> Remote -> +. Ensuite, démarrez votre application normalement via intelliJ. Puis passez à la configuration distante nouvellement créée. Au lieu de l’exécuter, appuyez sur debug. Le débogueur doit maintenant être prêt. Vous pouvez définir des points d’arrêt et le débogueur les arrêtera.

J’ai constaté que l’inclusion de Spring Dev Tools dans ma construction entraînait l’interruption du débogage IntelliJ (selon votre description ci-dessus). Si vous n’utilisez pas cette fonctionnalité, supprimez-la simplement de votre construction.

Si vous utilisez Maven, les lignes ci-dessous doivent être supprimées de pom.xml.

   org.springframework.boot spring-boot-devtools