Ich verwende Ant, um zu bauen, ich bekomme diese Fehler:
%Vor%Die Java-Klasse: ECMSDispatcherMDB.java
%Vor%Die Java-Klasse: ECMSErrorHandlerMDB.java
%Vor%Und hier ist die Ant-Builddatei build.xml :
%Vor%Die Fehler beziehen sich auf die Anmerkungen, die ich verwende. Was muss ich tun, um diesen Ant-Build zu reparieren, um meine Klassen-Annotationen zu kompilieren?
Es sieht so aus, als hätten Sie in Ihren Annotation-Arrays nachgestellte Kommas, die javac als illegal ansieht - anders als in 'richtigen' Arrays. (Es gibt einen Fehler in der Eclipse , der diese nicht als solche meldet.)
>Entfernen Sie die abschließenden Kommas, z. B .:
%Vor% Definieren Sie eine andere Quellenstufe für javac
?
Da empfohlen wird, immer das Attribut source
für die Aufgabe javac
anzugeben, haben Sie möglicherweise eine veraltete Version angegeben.
Wenn Ihr Ant-Skript z. B. mit der Quellenebene 1.4 kompiliert, haben Sie keine Generika oder Anmerkungen.
Suchen Sie in Ihrem build.xml
:
BEARBEITEN: Eine andere Möglichkeit, die Quellstufe für Ant festzulegen, wäre die Verwendung der Systemeigenschaft ant.build.javac.source
, aber ich bezweifle, dass dies der Fall ist.
Dies ist kein Ant-Problem per se . Es ist eher ein Syntaxfehler in einer oder mehreren der Java-Dateien, die Sie versuchen zu kompilieren.
Wenn Sie den Java-Quellcode gepostet haben, sollten wir in der Lage sein, genauer zu sein.
Ich weiß nicht, was das Problem ist, aber ich kann Ihnen sagen, dass Ant Java nicht selbst kompiliert. Stattdessen verwendet es den Java-Compiler (aus dem JDK, den es findet), um das Java zu kompilieren.
Wenn Sie also beim Kompilieren über Ant Kompilierungsfehler bekommen, aber nicht, wenn Sie einen anderen Weg kompilieren, gibt es etwas Signifikantes, was die Art und Weise betrifft, wie der Java-Compiler ausgeführt wird:
Der zweite Datenpunkt ist der tatsächliche Fehler, den Sie erhalten. Sie sind Syntaxfehler und keine semantischen Fehler. Wenn das Problem der Klassenpfad zum Erstellen war, dann würden Sie semantische Fehler erwarten, die (zum Beispiel) sagen, dass bestimmte Annotationsnamen nicht bekannt waren. Stattdessen erhalten Sie einen Syntaxfehler, der darauf hindeutet, dass der Compiler die Anmerkungen überhaupt nicht versteht. Das deutet darauf hin, dass der Compiler Java 1.4 (oder früher) Code erwartet.
Also meine Vorschläge sind:
<javac>
-Aufgabe und schauen Sie sich den Sun javac-Handbucheintrag an, um sicherzustellen, dass Sie es richtig machen. Dies deutet stark auf die Java-Kompilierungsebene hin, @DR hat sie bereits beantwortet. Probieren Sie zwei Dinge aus:
$ANT_HOME/bin
it dem Systempfad hinzu, wobei $ANT_HOME
das Verzeichnis ist, in dem sich ANT befindet (unter dem bin). Entfernen Sie jeglichen Verweis auf andere ANT. Öffnen Sie Ihre Datei build.xml, sehen Sie sich den Block an, in dem die Aufgabe javac
(Kompilierung) hinzugefügt wurde. Stellen Sie sicher, dass es so aussieht