Maven 构建过程在编译 GWT 时被终止



我的Maven构建过程在尝试编译GWT时在操作系统级别被终止,因此构建不会完成并且不会报告成功或失败。 我使用 -X 选项运行mvn3,这就是它发生的地方:

[DEBUG] Execute command :
/bin/sh -c /usr/lib/jvm/java-6-sun-1.6.0.26/jre/bin/java -Xmx512m -classpath <really_long_classpath> com.google.gwt.dev.Compiler -gen <path_loc> -logLevel INFO -style OBF -war <war_path> -localWorkers 1 <module_path>
./build.sh: line 2: 24139 Killed                  mvn3 -X clean install blah blah

当我从 Maven 中取出命令并单独运行它时,我遇到了同样的失败。 但是,当我只是在没有/bin/sh -c的情况下运行Java时,GWT编译得很好。

为什么 Maven 使用/bin/sh? 我在Ubuntu 10.04上的默认外壳是bash

没有

理由在没有"sh -c"的情况下工作命令,但谁知道呢。

mvn命令只是一个 shell 脚本,它设置适当的 java 环境以使用 maven 类运行 java。它使用/bin/sh因为它设置在脚本的第一行。如果要使用bash只需更改脚本的第一行!/bin/sh !/bin/bash

无论如何,似乎您的 ubuntu 正在杀死编译器,因为它占用了更多允许的资源。看看你的/var/log/syslog 文件,看看内核终止构建的原因。

1-尝试在pom.xml中重新配置gwt-maven插件,以便它仅启动工作线程

 <localWorkers>1</localWorkers>

2-尝试增加GWT编译器进程的内存

 <extraJvmArgs>-Xmx1g</extraJvmArgs>

3-尝试使用更多内存运行Maven

 $ export MAVEN_OPTS="-Xmx1g"

4-查看您的外壳ulimit并增加适当的参数

 $ ulimit -a

最新更新