【发布时间】:2012-09-17 20:58:59
【问题描述】:
我想通过测试来调试 Eclipse 构建。我尝试通过 Run > Debug Configurations > Maven Build 来运行它。在 Base 目录中是我的带有 pom.xml 文件的 Maven repo 目录,在目标“全新安装”中。当我单击调试 Eclipse 开始构建时,运行测试,但它不会在断点处停止。
【问题讨论】:
标签: java eclipse debugging maven
我想通过测试来调试 Eclipse 构建。我尝试通过 Run > Debug Configurations > Maven Build 来运行它。在 Base 目录中是我的带有 pom.xml 文件的 Maven repo 目录,在目标“全新安装”中。当我单击调试 Eclipse 开始构建时,运行测试,但它不会在断点处停止。
【问题讨论】:
标签: java eclipse debugging maven
如果你使用的是 Maven 2.0.8+,那么它会很简单, 从控制台运行 mvndebug,并通过远程调试 Java 应用程序使用端口 8000 连接到它。
【讨论】:
您使用的运行/调试配置旨在让您在工作区上运行 Maven,就像从命令行一样,而无需离开 Eclipse。
假设您的测试是基于 JUnit 的,您应该能够通过右键选择包含测试的源文件夹并选择 Debug as... -> JUnit tests 来调试它们。
【讨论】:
问题:由于 eclipse 和 maven 使用的库的 ti 顺序,单元测试结果与 eclipse 和 maven 运行不同。 在我的情况下,maven 的测试是成功的,但我想使用 eclipse 调试我的单元测试,所以 使用 eclipse 和运行 maven 调试单元测试类的最简单方法是:
1) mvn -Dtest=MySuperClassTest -Dmaven.surefire.debug test ==>它会监听5005端口(默认端口)
2) 进入eclipse,打开一个调试配置,添加一个新的java远程应用并将端口改为5005并调试
3) 当然,您必须在要调试的类中的某处添加断点
【讨论】:
我发现最简单的方法是:
右键项目
调试为 -> Maven 构建 ...
在目标字段中放置 -Dmaven.surefire.debug test
在参数中添加一个名为 forkCount 的新参数,其中包含一个值 0(以前是 forkMode=never,但已弃用且不再有效)
设置断点并运行此配置,它应该会到达断点。
【讨论】:
-Dmaven.surefire.debug=test(注意=)?
test 是目标。 -Dmaven.surefire.debug 是财产。不过,我把它写成test -Dmaven.surefire.debug。