Maven失败并出现错误' Process退出代码137'

时间:2016-03-25 10:57:23

标签: java maven

Maven因为缺乏“#E; Process”退出代码137'而失败了。在日志中。
可能出现错误的原因是什么?可能是什么问题?

2 个答案:

答案 0 :(得分:5)

进程被Linux OOM Killer杀死,因为您的计算机资源不足。

通过jvm默认Xmx为机器提供更多内存和/或交换或减少进程的内存占用量directly impacted,这很可能与jvm实际使用的内容相差甚远。

为其提供额外的java命令行选项

-Xmx256m -XX:MaxPermSize=512m

或配置系统变量

MAVEN_OPTS=-Xmx256m -XX:MaxPermSize=512m

MaxPermSize对java 8 +没有用处

答案 1 :(得分:3)

请注意,我最终发现问题是分配的内存太多,而不是太少。

在具有2GB内存并将最大堆大小设置为2GB的计算机上运行作业时,构建最终失败,状态为137.但是,当将作业设置为最大1GB(例如-Xmx1g -Xms512m)时,构建成功了。

这种方式很有意义,因为JVM可以自由地将其内存增加到最大堆大小,但如果实际内存不足,操作系统将终止进程。但是,如果你减少最大堆大小,JVM不会试图增加它的内存,所以操作系统不会担心它足以杀死它。

此外,我正在使用GWT,它需要一个单独的编译过程,并且参数必须在extraJvmArgs配置中指定为gwt-maven-plugin元素,而不是MAVEN_OPTS