Maven construit le débogage dans Eclipse

Je veux déboguer la construction d’Eclipse avec des tests. J’ai essayé de l’exécuter par Run> Debug Configurations> Maven Build. Dans le répertoire de base se trouve mon répertoire repo Maven avec le fichier pom.xml, dans les objectives “installation propre”. Lorsque je clique sur debug, Eclipse démarre la génération, exécute des tests mais ne s’arrête pas aux points d’arrêt.

La façon la plus simple que je trouve est de:

  1. Clic droit sur le projet

  2. Debug as -> Maven build

  3. Dans le champ des objectives, mettez -Dmaven.surefire.debug test

  4. Dans les parameters, placez un nouveau paramètre appelé forkCount avec une valeur de 0 (auparavant, forkMode = never, mais il est obsolète et ne fonctionne plus)

Définissez vos points d’arrêt et lancez cette configuration, elle devrait atteindre le point d’arrêt.

La configuration Run / Debug que vous utilisez est destinée à vous permettre d’exécuter Maven sur votre espace de travail comme si vous le faisiez depuis la ligne de commande sans quitter Eclipse.

En supposant que vos tests sont basés sur JUnit, vous devriez pouvoir les déboguer en choisissant un dossier source contenant des tests avec le bouton droit et choisir Debug as... -> JUnit tests .

Si vous utilisez Maven 2.0.8+, ce sera très simple, lancez mvndebug depuis la console et connectez-vous via Remove Debug Java Application avec le port 8000.

Référence:

http://docs.codehaus.org/display/MAVENUSER/Dealing+with+Eclipse-based+IDE

probleme: le résultat du test unitaire n’est pas le même avec eclipse et maven dû à l’ordre de bibliothèque utilisé par éclipse et maven. Dans mon cas, le test a été un succès avec maven mais je veux déboguer mon test unitaire en utilisant eclipse, donc le moyen le plus simple de déboguer une classe de test unitaire avec eclipse et runing maven est:

1) mvn -Dest = MySuperClassTest -Dmaven.surefire.debug test ==> il écoutera le port 5005 (port par défaut)

2) Allez dans eclipse, ouvrez une configuration de débogage, ajoutez une nouvelle application distante java et changez le port en 5005 et déboguez

3) bien sûr, vous devez append un sharepoint rupture quelque part dans la classe que vous souhaitez déboguer