Ich versuche, über 100 Java-Klassen aus verschiedenen Paketen von einem sauberen Verzeichnis (keine inkrementelle compiliert) mit den folgenden ant Aufgaben zu kompilieren:Ant <javac> Aufgaben werfen Stackoverflow
<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>
jedoch das erste Mal, dass ich Führen Sie die Kompilierungsaufgabe Ich bekomme immer eine StackOverflowException. Wenn ich den Task erneut ausführe, führt der Compiler einen inkrementellen Build durch und alles funktioniert einwandfrei. Dies ist unerwünscht, da wir CruiseControl verwenden, um eine automatische tägliche Erstellung durchzuführen, was zu falschen Build-Fehlern führt.
Als schnelle und unsaubere Lösung I 2 separate Aufgaben erstellt haben, Teile des Projekts in jeder Zusammenstellung. Ich glaube wirklich nicht, dass diese Lösung halten wird, da in Zukunft weitere Klassen hinzugefügt werden, und ich möchte nicht jedes Mal neue Kompilieraufgaben hinzufügen, wenn wir das "Kompilierlimit" erreichen.
Es wirft eine StackOverflowException - so dass Sie uns die Schuld geben? :-) – kenj0418
@ kenj0418 - Dein Kommentar hat mich wirklich am Kopf kratzen lassen, bis ich den Smiley sah. Gute! –