Ich bin eher daran gewöhnt zu machen, also bin ich verwirrt, warum Ameisen Klassen neu kompiliert, wenn die Quelle nicht geändert wurde. Ich habe gelesen, dass in einigen Fällen, in denen Generika verwendet werden, eine Neukompilierung erforderlich ist, aber ich bin mir nicht sicher, ob dies für mein Projekt notwendig ist.
Außerdem habe ich in der javac-Aufgabe includeDestClasses="true"
gesetztHier sind einige der Ziele, die ich verwende
%Vor% Versuchen Sie, das öffnende Tag der Aufgabe javac
so zu ändern, dass sowohl ein Attribut srcdir
als auch ein Attribut includes
enthalten ist:
<javac destdir="${build}" classpath="project.class.path" debug="on" srcdir="${src}" includes="util/**" includeDestClasses="true" source="1.5">
Ihre Quelle & amp; Zielverzeichnisse sind nicht äquivalent, daher kann ant die Ausgabedateien nicht effektiv vergleichen, um sie zu vergleichen.
Dies ist eine FAQ: Ссылка
Nach meiner Erfahrung kompiliert das Javac-Ziel nicht alle Klassen, nur diejenigen, die es benötigen, auch ohne das Attribut includeDestClasses. Tatsächlich habe ich normalerweise zwei (oder mehr) Kompilierziele eingerichtet, eines, das eine vollständige Kompilierung durchführt (erzwungen durch Löschen des Ausgabeverzeichnisses) und eines, das eine schnelle Kompilierung durchführt, ähnlich wie deine Java-Zeile. Sind Sie sicher, dass eines Ihrer Abhängigkeiten das Ausgabeverzeichnis nicht löscht?