HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun 的存在会导致 java 测试失败。Github repo 对此进行测试:https ://github.com/ajorpheus/final-frontier
这是这件事发生后的后续问题。
摘要: 显然,允许在每次打开 cmd 提示符时运行命令的注册表黑客攻击会对 Java 进程产生不利影响。
一开始我想,这也许是“mvn clean test”实际上解析为“mvn.bat clean test”的事实。但是,我尝试提取 mvn.bat 文件中包含的 java.exe 命令并尝试直接使用它,但遇到了同样的问题。
关于为什么会发生这种情况的任何想法?
更新
自动运行条目的值为:cd /d "c:\dev"
错误信息如下:
java.lang.RuntimeException: Error writing to file: some-dir/target/generated-resources/stuff.xmlwith the following error: Couldn't create dir: some-dir\target\generated-resources at com.test.build.TestFileCreation.createDirectoryTest
更新2
正如@NilsH 建议的那样,我已经确认这两种情况下的当前工作目录是相同的。
更新3
添加了一个 maven 配置文件,它将 maven-surefire-plugin 的 forkMode 设置为 never。无论注册表黑客是否存在,此配置文件都会导致测试通过。