如何增加Ant'Javadoc'任务的内存?

时间:2010-10-04 14:41:24

标签: eclipse ant javadoc out-of-memory

在创建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>

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

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

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

在Eclipse中的Ant首选项下,我试图添加一个'ANT_OPTS'变量来将JVM args传递给JavaDoc。 这种改变没有用。

如果我创建批处理文件并设置ANT_OPTS值,则构建工作正常。

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

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

我还尝试在构建文件中添加一个硬编码堆大小的文件

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

任何想法如何设置值,以便我的javadoc将产生更多的堆大小?

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

值得注意的是,显然你可以出于另一个原因在javadoc上获得OOME:看到其他问题:Out of memory error in ant