Как увеличить память для задачи Ant 'Javadoc'? - PullRequest
4 голосов
/ 04 октября 2010

При создании сценария сборки 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>

Когда запускается скрипт сборки, я вижу двухэтапный процесс, Eclipse запускает

org.eclipse.ant.internal.ui.antsupport.InternalAntRunner

Visual VM показывает, что этот процесс запускается с аргументами памяти кучи, перечисленными выше. Затем этот процесс порождает 2-й процесс "JavaDoc", и аргументы виртуальной машины не передаются вместе с ним. В VisualVM может быть подтверждено, что процесс JavaDoc имеет значение по умолчанию -Xms8m и около 64m значения Xmx, прежде чем выдается ошибка OOM.

В настройках Ant в Eclipse я попытался добавить переменную '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 появлялся с большим размером кучи?

Ответы [ 2 ]

6 голосов
/ 04 октября 2010

Задача javadoc имеет атрибут maxmemory для ее указания. Позволяет отдельно настраиваться на эту задачу.

0 голосов
/ 24 июня 2014

Стоит отметить, что, очевидно, вы можете получить OOME на javadoc по другой причине: см. Этот другой вопрос: Ошибка нехватки памяти в муравье

...