2010-10-04 68 views
4

當創建Ant構建腳本來生成Javadoc時,Eclipse正在接收OutOfMemoryError。 在運行配置的JRE選項卡下,ant build具有-Xmx512m and -Xms512m設置。 這適用於編譯應用程序。 唯一的問題是構建的Javadoc部分。這裏是build.xml文件如何增加Ant'Javadoc'任務的內存?

<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 

視覺VM表明,該過程與上面列出的堆內存參數啓動。 此過程生成第二個進程"JavaDoc",並且VM參數不會與它一起傳遞。 在VisualVM中,可以確認在拋出OOM錯誤之前,JavaDoc進程具有默認的-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將與更多的堆大小產卵?

回答

6

javadoc task的屬性maxmemory用於指定此項。允許您單獨調整此任務。

+0

謝謝,沒有工作,我現在看到我的XMX在適當的值。在閱讀API時錯過了該參數。很快就會接受答案 – Sean 2010-10-04 14:49:57