Maven失败,错误为“进程退出,代码137”

Myk*_*ych 2 java maven

Maven失败,并在日志中出现稀缺的“进程退出,代码137”。
错误的可能原因是什么?解决方法是什么?

Myk*_*ych 5

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

为机器分配更多的内存和/或交换或减少进程的内存占用,这直接受 jvm默认Xmx的影响,而Xmx最有可能与jvm的实际使用相去甚远。

给它附加的Java命令行选项

-Xmx256m -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)

或配置系统变量

MAVEN_OPTS=-Xmx256m -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)

MaxPermSize没有用于Java 8+


Kid*_*rla 5

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

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

之所以这样说是有道理的,因为JVM将自由地将其内存增加到最大堆大小,但是如果实际内存不足,则OS将终止该进程。但是,如果减小最大堆大小,则JVM不会尝试大幅增加其内存,因此OS不会担心足以杀死它。

此外,我使用的是GWT,它分叉了一个单独的过程进行编译,并且必须将参数指定为配置extraJvmArgs内的一个元素gwt-maven-plugin,而不是MAVEN_OPTS


归档时间:

查看次数:

9129 次

最近记录:

7 年,9 月 前