Eclipse 中的 Maven 构建调试
Posted
技术标签:
【中文标题】Eclipse 中的 Maven 构建调试【英文标题】:Maven build debug in Eclipse 【发布时间】:2012-09-17 20:58:59 【问题描述】:我想通过测试来调试 Eclipse 构建。我尝试通过 Run > Debug Configurations > Maven Build 来运行它。在 Base 目录中是我的带有 pom.xml 文件的 Maven repo 目录,在目标“全新安装”中。当我单击调试 Eclipse 开始构建时,运行测试,但它不会在断点处停止。
【问题讨论】:
【参考方案1】:如果你使用的是 Maven 2.0.8+,那么它会很简单, 从控制台运行 mvndebug,并通过远程调试 Java 应用程序使用端口 8000 连接到它。
【讨论】:
【参考方案2】:您使用的运行/调试配置旨在让您在工作区上运行 Maven,就像从命令行一样,而无需离开 Eclipse。
假设您的测试是基于 JUnit 的,您应该能够通过右键选择包含测试的源文件夹并选择 Debug as...
-> JUnit tests
来调试它们。
【讨论】:
太棒了!我正在搜索如何在eclipse中调试maven项目,并且第1个链接有一百万步,我按照那个,一定犯了错误,并且没有工作。发现那篇文章的日期是 2008 年。【参考方案3】:问题:由于 eclipse 和 maven 使用的库的 ti 顺序,单元测试结果与 eclipse 和 maven 运行不同。 在我的情况下,maven 的测试是成功的,但我想使用 eclipse 调试我的单元测试,所以 使用 eclipse 和运行 maven 调试单元测试类的最简单方法是:
1) mvn -Dtest=MySuperClassTest -Dmaven.surefire.debug test ==>它会监听5005端口(默认端口)
2) 进入eclipse,打开一个调试配置,添加一个新的java远程应用并将端口改为5005并调试
3) 当然,您必须在要调试的类中的某处添加断点
【讨论】:
【参考方案4】:我发现最简单的方法是:
右键项目
调试为 -> Maven 构建 ...
在目标字段中放置 -Dmaven.surefire.debug test
在参数中添加一个名为 forkCount 的新参数,其中包含一个值 0(以前是 forkMode=never,但已弃用且不再有效)
设置断点并运行此配置,它应该会到达断点。
【讨论】:
我收到错误“无法将 [aa.properties] 作为类加载器资源加载”。我正在使用 ClassLoader.getSystemClassLoader().getResourceAsStream() 函数来加载它。我应该设置某个工作目录还是稍微更改此代码? 参数 forkMode 自 2.14 版起已弃用。而是使用 forkCount=0 在 surefire 2.19、2.18 和 2.17 中尝试过这个,但没有成功。不过,它确实适用于 2.12.4。有什么变化吗? 我认为#3 应该是-Dmaven.surefire.debug=test
(注意=
)?
@Ternary 这就是为什么在教堂里相信比在电脑前更好。 ;) test
是目标。 -Dmaven.surefire.debug
是财产。不过,我把它写成test -Dmaven.surefire.debug
。以上是关于Eclipse 中的 Maven 构建调试的主要内容,如果未能解决你的问题,请参考以下文章
Maven + Eclipse + Tomcat - 开启项目调试之旅(转载)