【问题标题】:Maven build process gets killed when compiling GWTMaven 构建过程在编译 GWT 时被终止
【发布时间】:2013-10-08 17:48:34
【问题描述】:

我的 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 上的默认shell 是bash

【问题讨论】:

  • 您的系统可能在其中一个系统的日志中告诉了您原因。可能在 /var/log/messages 或 /var/log/ 中的其他文件中。您可以通过执行“ls -ltr /var/log/”列出所有按时间排序的文件,最后一个

标签: maven gwt maven-3 sh ubuntu-10.04


【解决方案1】:

没有'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-看看你的shellulimit并增加相应的参数

 $ ulimit -a

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2012-10-31
    • 1970-01-01
    • 2021-02-07
    • 2018-01-04
    • 2012-05-07
    • 2021-06-14
    相关资源
    最近更新 更多