【问题标题】:Eclipse Ant build task generating OutOfMemoryError - after several successful buildsEclipse Ant 构建任务生成 OutOfMemoryError - 在几次成功构建之后
【发布时间】:2017-01-13 14:02:47
【问题描述】:

在 Eclipse 工作区中创建项目的无头构建设置。

基本上这就是它的工作原理

  • Eclipse 工作区有项目
  • 通过ant文件
    • 使用eclipse ant任务清理、刷新、构建eclipse工作区
    • 然后运行任务来构建 jar

所有工作正常 - 除了通过 eclipse ant 任务构建 - 在大约 50 次这样的执行后运行到 OutOfMemoryError。

注意:自动构建一直失败 - 直到在该工作区上打开 Eclipse 并关闭。 此后再次运行良好的 50 次构建,然后是 OutOfMemoryError。

在 Ant 文件中构建工作区任务

<target name="build_workspace">
    <echo message="building workspace" />
    <eclipse.incrementalBuild kind="full"/>
</target>

还分别尝试过 kind = clean 和 incremental 但同样的错误。

<target name="build_workspace">
    <echo message="building workspace" />
    <eclipse.incrementalBuild kind="clean"/>
    <eclipse.incrementalBuild kind="incremental"/>
</target>

看起来有些东西堆积在工作区中,当在该工作区上打开 Eclipse 时会被清理/纠正。

请提出一些解决方案/指针。

这是构建失败的样子-

build_workspace:
     [echo] building workspace

BUILD FAILED
C:\Users\US\.jenkins\workspace\XBrowseReleaseBranchTests\testrunscripts\runtests.xml:51: java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2882)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
    at java.lang.StringBuilder.append(StringBuilder.java:119)
    at java.lang.Throwable.toString(Throwable.java:344)
    at java.lang.String.valueOf(String.java:2826)
    at java.io.PrintWriter.println(PrintWriter.java:710)
    at java.lang.Throwable.printStackTrace(Throwable.java:509)
    at org.eclipse.jdt.internal.compiler.util.Util.getExceptionSummary(Util.java:627)
    at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:589)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:524)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:365)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:178)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:302)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:60)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:173)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
    at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513)
    at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:422)
    at org.eclipse.core.resources.ant.IncrementalBuild.execute(IncrementalBuild.java:75)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

【问题讨论】:

    标签: eclipse jenkins ant out-of-memory


    【解决方案1】:

    我认为您需要在 Ant Configuration for JVM 中增加最大内存限制。 可以通过 -Xmx1024m(如果你想设置 1GB 作为限制)作为 Eclipse 中的 VM 参数。 这是执行此操作的一种方法。

    【讨论】:

    • 我已经这样做了——在发表这篇文章/问题之前。增加内存并不能解决问题 在 Eclipse 或 Workspace 中肯定有一些东西正在积累 - 这会导致这个问题......并且需要清除/清理......但不确定我在寻找什么或在哪里寻找。
    猜你喜欢
    • 2010-11-30
    • 2011-02-14
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2011-12-10
    • 2011-12-30
    相关资源
    最近更新 更多