增加 m2e Eclipse 插件中的堆大小

发布于 12-11 19:46 字数 1097 浏览 1 评论 0原文

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

每当我运行时,

mvn verify

我都会收到臭名昭著的 java.lang.OutOfMemoryError: Java heap space... 63M/63M。所以我先做了一些研究。通过 MAVEN_OPTS、Eclipse.ini / STS.ini、运行配置,甚至通过 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 插件没有“验证”目标的快捷方式。您必须通过“运行配置”创建一个新的配置(仅供参考,它没有“参数”选项卡)。

How does one increase the heap size of the m2e Eclipse plugin? Basically, I'm trying to run an automated integration test using Cargo and Selenium under STS (SpringSource's version of Eclipse) with pre-installed m2e (the popular Maven plugin for Eclipse).

Whenever I run

mvn verify

I get the infamous java.lang.OutOfMemoryError: Java heap space... 63M/63M. So I made some research first. Increase the memory via MAVEN_OPTS, Eclipse.ini / STS.ini, Run Configurations, and even via the Maven plugins thru the pom.xml. Nothing changed. Same error and same amount of memory 63M/63M.

I know my project works. The POM is correct. Why? Because when I run the same command using a stand-alone Maven. The integration test with Selenium and Cargo works. In fact here's the latest output (3 minutes ago):

[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] ------------------------------------------------------------------------

I'm not asking how to increase the memory in stand-alone Maven command. I'm specifically asking how to increase the heap size for m2e.

Note: By default the m2e Eclipse plugin does not have shortcut to the "verify" goal. You have to create a new one via Run Configuration (which does not have an Args tab, fyi).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

贵在坚持2024-12-18 19:46:56

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

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

-Xms128M -Xmx512M

When working with the Maven 2 plugin, setting java options in eclipse.ini or MAVEN_OPTS environment variable will have no effect on your build. You need to add some command line args via the "Edit Configuration and launch" dialog in Eclipse.

"Run As" > "Maven Build", click on the "JRE" tab, enter VM args e.g.

-Xms128M -Xmx512M

握住你手2024-12-18 19:46:56

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

另一方面,m2e 想要更多地控制 Maven jvm 的启动方式,因此它直接执行此操作,而无需包装器。这就是为什么您将内存设置直接添加到 m2e 运行/调试配置 VM 参数,而不是使用 MAVEN_OPTS。

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

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

${env_var:MAVEN_OPTS}

As a follow-on to the already accepted answer, when you invoke "mvn" on the command-line, you are really invoking the mvn.bat (or mvn.sh) wrapper script. It is this wrapper script that uses the MAVEN_OPTS env variable when kicking off the actual maven jvm.

m2e, on the other hand, wants more control over how the maven jvm is kicked off, so it does this directly without the wrapper. This is why you add your memory settings directly to your m2e run/debug configuration VM arguments, rather than using MAVEN_OPTS.

If you want m2e to pass what you already have in MAVEN_OPTS to the maven jvm, in the "Edit Configuration and launch" dialog in Eclipse:

"Run As" > "Maven Build", click on the "JRE" tab, enter VM args e.g.

${env_var:MAVEN_OPTS}
深居我梦2024-12-18 19:46:56

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

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

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

You can add in your pom.xml your memory settings:

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

The description of all maven-compiler-plugin parameters is here: link

夜司空2024-12-18 19:46:56

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

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

如果在运行配置中设置系统环境变量没有帮助,您可能必须编辑系统环境变量。请参阅此处此处

Have you tried setting the MAVEN_OPTS environment variable for your run configuration?

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

Might be you'll have to edit your system environment variables if setting it in the run configuration doesn't help. See here or here

青春如此纠结2024-12-18 19:46:56

我也遇到过类似的问题。在您的主文件夹中创建一个名为 mavenrc_pre.bat (Windows 上)或 .mavenrc (Linux 上)的文件,并根据需要在其中设置您的 maven_opts 。
它与 Eclipse Indigo 捆绑在一起的 m2e 一起使用。

I've faced a similar issue. Create a file named mavenrc_pre.bat on windows or .mavenrc on linux in your home folder and set your maven_opts as you wish in it.
It is working with m2e bundled with Eclipse Indigo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文