当创建一个Ant构建脚本来生成JavaDoc时,Eclipse接收到OutofMemoryError。
蚂蚁建造有
-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>
当构建脚本运行时,我看到一个两步的过程,
Eclipse启动
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner
VisualVM显示此进程使用上面列出的堆内存参数启动。
然后这个过程产生第二个过程
"JavaDoc"
VM参数不会随它一起传递。
在VisualVM中,可以确认JavaDoc进程在抛出OOM错误之前有一个默认的-xms8m值和一个大约64m的xmx值。
在Eclipse中的ant preferences下,我尝试添加一个“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将产生更多堆大小吗?