Eclipse在进行Ant构建时内存不足

9
我和两个同事一起在GWT项目中使用eclipse编码。该项目正在不断壮大,我们正在引进多名新开发人员来协助开发。我负责在他们开始工作之前设置他们的工作站。我们当前的系统都可以按照基本的GWT设置指南(http://code.google.com/webtoolkit/usingeclipse.html)直接使用。
在我的工作系统上,我没有改变eclipse为内存大小设置的任何默认值。
新系统将运行简单的入门项目,因此我知道我已经安装了GWT。当我导入我们当前的代码库时,我可以在本地运行该网站而没有问题。但是,当我尝试运行ant脚本来构建我们的项目并将其推送到开发服务器时,新系统会出现如下错误:
“Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded”
在新系统上,我修改了eclipse.ini文件并设置了-Xmx1024M,并在Window>Preferences>Java>Installed JREs下添加了-Xmx1024M,但这些都没有解决问题。(如此处所示:http://dinu.blog.com/2010/06/02/out-of-memory/)
我尝试过32位和64位版本的eclipse,甚至尝试了只是复制已知可工作的eclipse文件夹到新系统上,但都没有成功。有人有什么想法吗?

我们正在使用Ant脚本构建一个WAR文件,然后将其部署到运行Tomcat的服务器上。此外,我们还使用Ant脚本和构建服务器每晚自动构建项目。 - Jodosh
只是为了构建WAR文件就出现了内存不足?这很奇怪 ... 你的Ant脚本难道又在尝试编译类吗? - m0skit0
正如我所说,您的Ant脚本不必编译Java类,这是我认为会消耗所有内存的原因(我不知道为什么,但在我正在工作的项目中也是如此,看起来像是Eclipse的问题...),因为如果您设置了“自动构建”选项,Eclipse已经编译了这些类。您只需要获取已生成的*.class*文件并跳过此步骤即可。 - m0skit0
谢谢你的帮助,这确实有效,但需要我维护两个构建脚本(构建服务器没有eclipse自动构建)。我将让开发人员从cmd提示符中运行ant。如果使用cmd提示符太麻烦,你的选项最终可能成为解决方案。我将修改ant脚本以执行“eclipse构建”或“构建服务器构建”。 - Jodosh
是的,那是最好的选择。 - m0skit0
显示剩余2条评论
3个回答

2

那个链接几乎与我在原始问题中包含的链接相同。MaxPermSize是唯一的区别,在我的情况下它并没有起到帮助作用。 - Jodosh

1

运行某些Ant脚本时,我们可能会遇到类似的问题。您可以在“运行->外部工具->外部工具配置”对话框中为Ant Build设置VM参数。单击JRE选项卡并根据需要设置通常的-Xmx和-Xms参数。


0

我有同样的问题。我通过在终端窗口中使用ant命令行构建来“解决”或更好地避免了这个问题。

这里 有人建议在build.xml文件中添加fork=yes属性,并阅读这个


这对我来说有效,现在是一个好的解决方法。这是另一种实现m0skit0建议的方式。虽然不是理想的,但这样我就不必维护两个构建脚本(一个用于开发机器,一个用于构建服务器)。 - Jodosh
坏链接,这里是什么或者已经不存在了。 - hram908

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接