【问题标题】:How do increase memory for the Ant 'Javadoc' task?如何增加 Ant 'Javadoc' 任务的内存?
【发布时间】:2011-04-20 20:30:51
【问题描述】:

在创建 ant 构建脚本以生成 Javadoc 时,Eclipse 收到 OutOfMemoryError。 ant 构建在运行配置的 JRE 选项卡下具有 -Xmx512m and -Xms512m 设置。 这对于编译应用程序非常有用。 唯一的问题是构建的 Javadoc 部分。这是 build.xml 文件

<target name="JavaDoc" description="Create Javadocs">
    <javadoc destdir="c:/javadoc" windowtitle="My API">
        <classpath refid="application.classpath" />
        <packageset dir="Source">
            <include name="**" />
        </packageset>
    </javadoc>
</target>

当构建脚本运行时,我看到一个 2 步过程, Eclipse 启动

org.eclipse.ant.internal.ui.antsupport.InternalAntRunner

Visual VM 显示该进程使用上面列出的堆内存参数启动。 然后这个进程产生第二个进程"JavaDoc",VM 参数不会随之传递。 在 VisualVM 中,可以确认 JavaDoc 进程在抛出 OOM 错误之前有一个默认的 -Xms8m 值和大约 64m 的 Xmx 值。

在 Eclipse 的 Ant 首选项下,我尝试添加一个“ANT_OPTS”变量以将 JVM 参数传递给 JavaDoc。 改变没有奏效。

如果我创建一个批处理文件并设置 ANT_OPTS 值,则构建确实有效。

set ANT_OPTS=-Xms512m -Xmx512m
ant -file C:\myApp\build.xml JavaDoc

但是创建批处理文件违背了允许我直接在 Eclipse 中构建所有内容的目的。

我也尝试在构建文件中添加一个,这将硬编码堆大小

<arg value="ANT_OPTS=-Xms512m -Xmx512m" />

知道如何设置该值以使我的 javadoc 生成更多堆大小吗?

【问题讨论】:

    标签: eclipse ant javadoc out-of-memory


    【解决方案1】:

    值得注意的是,显然您可以出于另一个原因在 javadoc 上获得 OOME:请参阅另一个问题:Out of memory error in ant

    【讨论】:

      【解决方案2】:

      javadoc task 具有用于指定此属性的 maxmemory。允许您单独调整此任务。

      【讨论】:

      • 谢谢,这确实有效,我现在看到我的 Xmx 处于正确的值。我在阅读 API 时错过了该参数。很快就会接受答复
      猜你喜欢
      • 2014-03-09
      • 2010-10-14
      • 2019-10-14
      • 2011-03-13
      • 2010-09-08
      • 2015-08-10
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多