【发布时间】: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