在创建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将产生更多的堆大小?
答案 0 :(得分:6)
javadoc task具有用于指定此属性的maxmemory
属性。允许您单独调整此任务。
答案 1 :(得分:0)
值得注意的是,显然你可以出于另一个原因在javadoc上获得OOME:看到其他问题:Out of memory error in ant