增加m2e Eclipse插件中的堆大小

时间:2011-10-26 06:12:31

标签: eclipse memory maven heap m2e

如何增加m2e Eclipse插件的堆大小?基本上,我正在尝试使用预先安装的m2e(Eclipse的流行Maven插件)在STS(SpringSource的Eclipse版本)下使用Cargo和Selenium进行自动集成测试。

每当我跑

mvn verify

我得到臭名昭着的 java.lang.OutOfMemoryError:Java堆空间... 63M / 63M 。所以我先做了一些研究。通过MAVEN_OPTS,Eclipse.ini / STS.ini,Run Configurations,甚至通过pom.xml的Maven插件增加内存。没有改变。相同的错误和相同的内存量63M / 63M。

我知道我的项目有效。 POM是正确的。为什么?因为当我使用独立的Maven运行相同的命令时。与Selenium和Cargo的集成测试工作。事实上,这是最新的输出(3分钟前):

[INFO] [beddedLocalContainer] Jetty 8.x Embedded is stopped
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 minutes 24 seconds
[INFO] Finished at: Wed Oct 26 14:08:16 CST 2011
[INFO] Final Memory: 70M/149M
[INFO] ------------------------------------------------------------------------

我不是在询问如何在独立Maven命令中增加内存。我特别询问如何增加m2e的堆大小。

注意:默认情况下,m2e Eclipse插件没有“验证”目标的快捷方式。你必须通过Run Configuration(它没有Args选项卡,fyi)创建一个新的。

5 个答案:

答案 0 :(得分:34)

使用Maven 2插件时,在eclipse.ini或MAVEN_OPTS环境变量中设置java选项对您的构建没有任何影响。您需要通过Eclipse中的“编辑配置和启动”对话框添加一些命令行参数。

“运行方式”> “Maven Build”,单击“JRE”选项卡,输入VM args例如。

-Xms128M -Xmx512M

答案 1 :(得分:10)

作为已经接受的答案的后续内容,当您在命令行上调用“mvn”时,您实际上是在调用mvn.bat(或mvn.sh)包装器脚本。这个包装器脚本在启动实际的maven jvm时使用MAVEN_OPTS env变量。

另一方面,m2e想要更多地控制maven jvm如何启动,所以它直接在没有包装器的情况下完成。这就是您将内存设置直接添加到m2e运行/调试配置VM参数而不是使用MAVEN_OPTS的原因。

如果您希望m2e将您在MAVEN_OPTS中已有的内容传递给maven jvm,请在Eclipse的“编辑配置和启动”对话框中输入:

“运行方式”> “Maven Build”,单击“JRE”选项卡,输入VM args例如。

${env_var:MAVEN_OPTS}

答案 2 :(得分:1)

您可以在pom.xml中添加内存设置:

<plugin>
 <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    ...
    <fork>true</fork>
    <meminitial>128m</meminitial>
    <maxmem>512m</maxmem>
    ...
  </configuration>
</plugin>

所有maven-compiler-plugin参数的描述如下:link

答案 3 :(得分:0)

您是否尝试为运行配置设置MAVEN_OPTS环境变量?

MAVEN_OPTS="-Xmx768M -XX:MaxPermSize=128m" 

如果在运行配置中设置它没有帮助,您可能需要编辑系统环境变量。请参阅herehere

答案 4 :(得分:0)

我遇到过类似的问题。在Windows上创建名为mavenrc_pre.bat的文件,在主文件夹中创建linux上的.mavenrc文件,并根据需要设置maven_opts。 它正在使用与Eclipse Indigo捆绑的m2e。