Я пытаюсь собрать более 100 Java классов из различных пакетов из чистого каталога (без инкрементного компилирует) с использованием следующих муравьиных задач:<javac> задачи Ant бросает StackOverflowException
<target name="-main-src-depend">
<depend srcdir="${src.dir}"
destdir="${bin.dir}"
cache="${cache.dir}"
closure="true"/>
</target>
<target name="compile" depends="-main-src-depend"
description="Compiles the project.">
<echo>Compiling</echo>
<javac target="${javac.target}"
source="${javac.source}"
debug="${javac.debug}"
srcdir="${src.dir}"
destdir="${bin.dir}">
<classpath>
<path refid="runtime.classpath"/>
<path refid="compile.classpath"/>
</classpath>
</javac>
</target>
Однако, в первый раз, когда я запустите задачу компиляции, я всегда получаю исключение StackOverflowException. Если я снова запустил задачу, компилятор выполнит инкрементную сборку, и все будет хорошо. Это нежелательно, так как мы используем CruiseControl, чтобы делать автоматическую ежедневную сборку, и это вызывает ложные сбои сборки.
Как быстро-грязное решение, я создал 2 отдельные задачи, составляя части проекта в каждом. Я действительно не думаю, что это решение будет продолжаться по мере добавления большего количества классов в будущем, и я не хочу добавлять новые задачи компиляции каждый раз, когда мы нажимаем «лимит компиляции».
Он выбрасывает исключение StackOverflowException - так вы обвиняете нас? :-) – kenj0418 2009-06-25 05:10:55
@ kenj0418 - Ваш комментарий действительно заставил меня почесать голову, пока я не увидел смайлик. Неплохо! – 2009-06-25 18:18:19