Maven Surefire 2.13无法在Windows上分叉

问题描述 投票:3回答:3

我有一个包含多个测试用例的项目,我使用Maven surefire插件2.13对其进行了编译。当我设置forkmode = none时,一切正常,但是当我忽略该条目时,默认的forkmode变为once,并且我的项目失败:

Forking command line: cmd.exe /X /C ""C:\Program Files\Java\jdk1.6.0_37\jre\bin\java" -jar G:\Gottware-server\core\math\target\surefire\surefirebooter
7758025909061587587.jar G:\Gottware-server\core\math\target\surefire\surefire8735550212668630533tmp G:\Gottware-server\core\math\target\surefire\suref
ire_08386349728753606434tmp"
The system cannot find the path specified.

看来这是一个操作系统问题,我正在使用Windows7。可能出什么问题了?很好奇的是,在成功构建之后,我也会遇到相同的错误:

[INFO] -----------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------
[INFO] Total time: 15.504s
[INFO] Finished at: Fri Mar 08 15:08:54 CET 2013
[INFO] Final Memory: 13M/353M
[INFO] -----------------------------------------------
The system cannot find the path specified.

事实上,我已经调试了mvn.bat的Maven的最后一行

cmd /C exit /B %ERROR_CODE%

并且这根本无法再返回:

The system cannot find the path specified.

我进一步调试时失败了:

U:\>cmd.exe
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
The system cannot find the path specified.
java windows maven
3个回答
2
投票

在您粘贴的行中,我看到一个双引号:

Forking command line: cmd.exe /X /C ""C:\Program
                                   ^^^^

也许您为JAVA_HOME(或其他定义Java路径的地方)设置了错误的值。这也可以解释为什么它在其他系统上不会失败:您在那里有一个不同的(正确的)JAVA_HOME。


1
投票

surefire插件并不总是报告友好错误。我可以考虑检查的几件事:

  • G:\Gottware-server\...中有多少可用磁盘空间?您是要增加磁盘配额(在NAS共享上)还是笔记本驱动器已满?
  • 还要检查本地工件存储库的位置。您有没有达到配额/空间用完了?
  • 构建机器上有多少可用内存?您是否有足够的内存可用于在单独的JVM中运行测试,如果是,则JVM是否配置为具有足够的内存?您可以尝试使用<argLine>属性为分支的VM配置内存设置。 (我还为在<argLine>中具有大量内存设置,超过了运行Eclipse时计算机上可用的内存以及多个浏览器窗口等功能的人提供了帮助。在那种情况下,降低派生JVM的内存设置可以解决此问题。 )

0
投票

我有同样的错误,并且有可能我在cmd启动时自动启动了一个bat文件(而且我猜有些链接路径有问题)。

我将引用此答案来解释我的解决方案:https://superuser.com/questions/144347/is-there-windows-equivalent-to-the-bashrc-file-in-linux#answer-916478

我的脚本称为bashrc.bat,我将其放置在%USERPROFILE%文件夹下。

在注册表编辑器(regedit)中,我找到了以下条目:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

然后添加一个名为Autorun的键,其值为%USERPROFILE%\ bashrc.bat

当我从注册表中删除此注册表项时,再次启动cmd后,不再显示The system cannot find the path specified.行,并且surefire可以恢复其活动。

© www.soinside.com 2019 - 2024. All rights reserved.