我在尝试构建 Cloudera Navigator SDK 示例时遇到了同样的问题。我使用的是 32 位 JVM,编译似乎正常,但之后的测试因以下错误而失败:
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
我尝试设置 MAVEN_OPTS=-Xmx512m 但这没有效果 - 它失败并显示相同的消息。即使错误消息中的 2097152KB 的值仍然相同(奇怪!)。
我终于发现堆大小值已在 pom.xml 文件中为测试进行了硬编码!它有过
<argLine>-Xmx2048m ...
</argline>
我编辑了 pom.xml 并将其更改为 -Xmx1024m 然后 maven 能够毫无问题地构建和测试所有内容。
因此,从中得到的教训是,如果您正在构建其他人(例如 Cloudera)给您的东西并且您收到这样的错误,请仔细检查 pom.xml 以查看该设置是否在其中进行了硬编码。
仅供参考-我认为使用 64 位 JVM 也可能解决此问题,但我无法切换到 64 位。我们还有一些其他的东西需要让它工作,它说它只适用于 32 位 JVM(我真的不能比这里更详细地解释)。