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 构建调试的主要内容,如果未能解决你的问题,请参考以下文章

eclipse构建及运行maven web项目

Maven + Eclipse + Tomcat - 开启项目调试之旅(转载)

Eclipse:使用 -X 开关重新运行 Maven 以启用完整的调试日志记录

从Eclipse中的Maven项目调试Junit测试

Maven + Eclipse + Tomcat 调试设置

无法通过 Eclipse 中的 Maven 插件构建 Spring App