web-dev-qa-db-fra.com

Comment déboguer un objectif maven avec intellij idea?

Pouvez-vous déboguer un objectif maven avec Intellij IDEA? Je sais que je peux cliquer avec le bouton droit de la souris et exécuter Debug. Cependant, le plugin maven n'apparaissant pas dans ma liste Bibliothèques externes, je ne peux donc pas entrer dans le code et définir un point d'arrêt. Ainsi, Debug exécute les objectifs sans s'arrêter, comme Run le fait.

J'utilise OS X 10.8 et IDEA 12.0.2.

EDIT: objectif

J'ai écrit specRunner personnalisé pour https://github.com/searls/jasmine-maven-plugin - Cependant, $ specs $ reste vide. J'essaie donc de voir quels fichiers sont réellement chargés.

85
rweng

Deviner:

  1. à partir de la ligne de commande, exécutez maven goal avec mvnDebug au lieu de mvn. Par exemple. mvnDebug clean
  2. Ouvrez le source du plugin maven que vous voulez déboguer dans intelliJ et définissez un point d'arrêt
  3. Dans IDEA, ajoutez un Remote Configuration.
    1. Sous Paramètres, définissez Transport: Socket, Mode débogueur: Attacher, Hôte: localhost, Port: 8000 (port par défaut de mvnDebug).
  4. Exécutez la configuration en mode débogage. Il devrait se connecter à l'attente mvnDebug jvm.
169
rweng

Très facile. J'utilise Intellj Idea 15.0.4

  1. Définir le point d'arrêt dans votre plugin Maven
  2. Dans la balise "Projets Maven", allez au projet qui utilise votre plugin Maven.
  3. Dans "Plugins", trouvez votre plugin et sur l'objectif, faites un clic droit et Debug

Voici une capture d'écran:

screenshot

36
gorums

Vieille question, mais j'avais le même besoin et il m'a fallu un certain temps pour que cela fonctionne. J'espère pouvoir aider quelqu'un.

Pour le test de débogage, utilisez:

mvn <goal> -Dmaven.surefire.debug 

ou

mvn <goal> -Dmaven.failsafe.debug

Lorsque l'exécution s'arrête et écoute le socket à l'adresse 5005 (par défaut), vous exécutez votre débogueur distant configuré.

Comment le configurer:

Exécuter -> Modifier les configurations -> Transport à distance: socket Mode débogueur: Attacher un port: 5005 (par défaut)

-> Enregistrer.

13
vilkg

Le moyen le plus simple de déboguer un objectif Maven UNIQUEMENT dans IntelliJ est de créer un objectif Maven régulier et de transmettre les VM options):

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

Où 8000 est un numéro de port pour le débogage distant.

Maven goal configuration

Créez ensuite une nouvelle configuration distante avec le port 8000. Exécutez cette configuration après avoir exécuté Maven Goal.

Remote debugging configuration

8
Michał Stochmal

Je pense que la solution la plus simple consiste à ajouter temporairement le plugin maven en tant que dépendance. Une fois que cela est fait, IntelliJ le traitera comme toute autre dépendance et vous pourrez définir des points d'arrêt de la manière habituelle.

6
Peter Szanto

Puisque vous travaillez avec Intellij, il existe déjà un débogueur intégré et vous n'avez pas nécessairement besoin d'utiliser mvnDebug, qui est un outil de ligne de commande. Découvrez ce tutoriel: Comment déboguer des applications Maven dans Intellij IDEA .

Le tutoriel utilise le plug-in Maven Exec et vous permet de déboguer l'application sans avoir besoin d'utiliser la ligne de commande ou MvnDebug. Le partage de la pensée pourrait être utile ici.

1
ambodi

Soit vous pouvez vous référer à réponse ci-dessus ou ajoutez simplement ce plugin à pom.xml

           <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
            <jvmArguments>
            -Xdebug - 
            Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
            </jvmArguments>
            </configuration>
        </plugin>

Et lancez maven goal avec mvn au lieu de mvnDebug. Par exemple. mvn spring-boot:run

Dans IDEA, ajoutez une configuration à distance. Sous Paramètres, définissez Transport: Socket, Mode débogueur: Attacher, Hôte: localhost, Port: 8000 (port par défaut de mvnDebug).

Exécuter en tant que débogage dans IDEA) chaque fois que vous souhaitez déboguer le code.

1
abhishek ringsia