我的项目安装完全正常,直到昨天,但今天我的安装卡在了以下,
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
基本上在此行之后,安装根本不会进行。有什么想法吗?
答案 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配置中删除了与已删除类相对应的元素,一切都很顺利。这似乎是一个春天的错误和肯定的使用,没有产生合理的警告或错误。