进程被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+
仅需注意,我最终发现问题是分配的内存过多,而不是分配的内存太少。
在具有2GB内存的机器上运行作业并将最大堆大小设置为2GB时,构建最终会失败,状态为137。但是,当将作业设置为最大1GB时(例如-Xmx1g -Xms512m),构建成功。
之所以这样说是有道理的,因为JVM将自由地将其内存增加到最大堆大小,但是如果实际内存不足,则OS将终止该进程。但是,如果减小最大堆大小,则JVM不会尝试大幅增加其内存,因此OS不会担心足以杀死它。
此外,我使用的是GWT,它分叉了一个单独的过程进行编译,并且必须将参数指定为配置extraJvmArgs内的一个元素gwt-maven-plugin,而不是MAVEN_OPTS。
| 归档时间: |
|
| 查看次数: |
9129 次 |
| 最近记录: |