代码之家  ›  专栏  ›  技术社区  ›  Kannan Ekanath

Maven Surefire插件永久挂起

  •  8
  • Kannan Ekanath  · 技术社区  · 14 年前

    直到昨天,我的项目安装都很好,但今天我的安装遇到了以下问题:

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

    Java版本:1.60y20

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

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

    1. 我试过MVN-X,结果也一样。
    2. 我甚至升级到了最新的2.6版本,仍然有同样的问题
    3. 我已经确保没有调试选项,也就是说,JVM不等待附加任何调试程序(-xdebug选项)
    5 回复  |  直到 14 年前
        1
  •  2
  •   krosenvold    14 年前

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

        2
  •  2
  •   Kannan Ekanath    14 年前

    我通过了forkmode=never,现在我注意到其中一个测试根本没有启动。原因是它使用了一个EcHACHE和存储在“Java.Io.tMPDIR”目录中的条目,这是我的用户的临时目录。

    系统也从今天开始变慢了。然后我注意到我的c:/users/../appdata/local/temp文件夹有大约200万个文件,其中大部分是p4ticket234.txt或Visual Studio日志文件。

    一旦我清除了这些日志文件,我的构建就成功了。一个jconsole或者一些线程转储可能更像我想的那样。

        3
  •  1
  •   Waldheinz    14 年前

    Surefire等待应用程序中的所有非守护进程线程完成。很容易错过一个或另一个。例如,确保调用 shutdown 方法 Executors 如果你用的话。如果你自己做线程处理,你基本上要么做它们 daemon 线程或确保它们终止。线程转储可能有助于发现延迟的线程。

        4
  •  0
  •   Eugene Kuleshov    14 年前

    使用jps、jstack或jvisualvm工具从jdk中获取进程列表及其线程转储。

        5
  •  0
  •   Farrukh Najmi    14 年前

    我也有同样的问题。突然间,我的“MVN测试”似乎永远挂起了,相关的org.apache.maven.surefire.booter.forkedbooter 进程占用1.7GB!经过大量调查,结果发现问题在于我删除了一个类,这个类由SpringCore在SpringXML配置中实例化为SpringBean。一旦我从SpringXML配置中删除了与已删除类相对应的元素,一切都很好。这似乎是一个春季和Surefire使用中的错误,没有产生合理的警告或错误。