1

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

[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 中取出命令并单独运行它时,我遇到了同样的失败。但是,当我只运行没有 . 的 Java 时/bin/sh -c,GWT 编译得很好。

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

4

1 回答 1

2

没有'sh -c' 命令就没有理由工作,但谁知道呢。

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

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

1-尝试重新配置gwt-maven你的插件,pom.xml因为它只启动一个工人

 <localWorkers>1</localWorkers>

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

 <extraJvmArgs>-Xmx1g</extraJvmArgs>

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

 $ export MAVEN_OPTS="-Xmx1g"

4-看看你的shellulimit并增加适当的参数

 $ ulimit -a
于 2013-10-09T08:55:07.077 回答