如何增加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)创建一个新的。
答案 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"
答案 4 :(得分:0)
我遇到过类似的问题。在Windows上创建名为mavenrc_pre.bat的文件,在主文件夹中创建linux上的.mavenrc文件,并根据需要设置maven_opts。 它正在使用与Eclipse Indigo捆绑的m2e。