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

Sea*_*ean 4 eclipse ant javadoc out-of-memory

在创建ant构建脚本以生成Javadoc时,Eclipse正在接收OutOfMemoryError.ant构建具有-Xmx512m and -Xms512m运行配置中JRE选项卡下的设置.这非常适合编译应用程序.唯一的麻烦是构建的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>
Run Code Online (Sandbox Code Playgroud)

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

org.eclipse.ant.internal.ui.antsupport.InternalAntRunner
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

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

<arg value="ANT_OPTS=-Xms512m -Xmx512m" />
Run Code Online (Sandbox Code Playgroud)

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

mar*_*ton 6

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