Maven surefire插件永远挂起

时间:2010-11-03 10:55:24

标签: java maven-2

我的项目安装完全正常,直到昨天,但今天我的安装卡在了以下,

Apache Maven 2.2.1(r801777; 2009-08-06 20:16:01 + 0100)

Java版本:1.6.0_20

[INFO] Surefire report directory: C:\Perforce\project-name\target\surefire-reports

基本上在此行之后,安装根本不会进行。有什么想法吗?

  1. 我尝试了mvn -X,我得到同样的东西。
  2. 我甚至升级到2.6版本,但仍然遇到同样的问题
  3. 我确保没有调试选项,即JVM没有等待任何调试器附加(-Xdebug选项)

5 个答案:

答案 0 :(得分:2)

使用jstack进行正确进程的线程转储并提交问题

答案 1 :(得分:2)

我通过了forkMode = never,现在我注意到其中一个测试根本没有启动。原因是它在“java.io.tmpdir”目录中使用了ehcache和存储的条目,该目录是我的用户的临时目录。

从今天开始,系统也开始变慢。然后我注意到我的C:/ users /../ AppData / Local / Temp文件夹中有大约200万个文件,其中大多数是p4ticket234234.txt或Visual Studio日志文件。

清除这些日志文件后,我的构建成功了。一个jconsole或一些线程转储会有更多表示我认为相同。

答案 2 :(得分:1)

Surefire等待应用程序中的所有非守护程序线程完成。很容易错过一个或另一个。例如,如果您使用任何方法,请务必在Executors上调用shutdown方法。如果您自己进行线程处理,则基本上必须使它们成为daemon个线程或确保它们终止。线程转储可能有助于发现延迟线程。

答案 3 :(得分:0)

使用JDK的jps,jstack或jvisualvm工具获取进程列表及其线程转储。

答案 4 :(得分:0)

我遇到了同样的问题。突然间,我的“mvn测试”似乎永远悬挂着相关的org.apache.maven.surefire.booter.ForkedBooter  过程需要1.7GB!经过大量调查后发现问题是我删除了一个类,该类在spring XML配置中被spring-core实例化为spring bean。一旦我从spring XML配置中删除了与已删除类相对应的元素,一切都很顺利。这似乎是一个春天的错误和肯定的使用,没有产生合理的警告或错误。