Ich habe Buildfehler mit m2eclipse aber nicht mit maven2 in der Kommandozeile - ist meine m2eclipse falsch konfiguriert?

8

Ich habe m2eclipse installiert, um ein Java-Projekt in Eclipse zu erstellen.

Ich habe das Projekt folgendermaßen importiert:

%Vor%

Um sicher zu sein, dass m2eclipse das Projekt tatsächlich erstellt hat, habe ich das Zielverzeichnis gelöscht und sichergestellt, dass es von m2eclipse neu erstellt wurde und es war. Aber anders als bei der Kommandozeilenversion von maven, die alles perfekt erstellt hat, hinterlässt m2eclipse eine große Anzahl von Buildfehlern im Quellcode.

Ist es möglich, dass ich m2eclipse nicht richtig konfiguriert habe? Wie würde ich das überprüfen?

Dies ist ein GitHub-Link zum Projekt , den ich zu erstellen versuche. Ich erhalte die Buildfehler von @Override unter diese Zeile . Es heißt "Die Methode createNewToken muss eine Superklassenmethode überschreiben".

    
Chris Collins 21.08.2010, 19:00
quelle

3 Antworten

13

Update: Das Problem ist das gleiche wie in 'Überschreiben Sie eine Superklassenmethode' Fehler nach dem Importieren eines Projekts in Eclipse und hier ist, was die akzeptierte Antwort sagt:

  

Eclipse verwendet standardmäßig Java 1.5 und Sie verfügen über Klassen, die Schnittstellenmethoden implementieren (die in Java 1.6 mit @Override annotiert werden können, aber in Java 1.5 nur für Methoden, die eine Superklassenmethode überschreiben).

Wenn Sie den Compiler-Level auf Java 1.6 ändern, wird das Problem verschwinden. Ändern Sie dazu die Compiler-Plugin-Konfiguration:

%Vor%

Und aktualisieren Sie die Projektkonfiguration ( Klicken Sie mit der rechten Maustaste auf das Projekt, dann Maven V Update Projektkonfiguration ) löst das Problem unter Eclipse.

Oder bleiben Sie bei 1.5, aber entfernen Sie die problematischen @Override-Annotationen.

Ich weiß nicht, wie Taylor mit einem Java 1.5-Compiler-Level funktioniert hat. Und meine Vermutung ist, dass das Projekt nicht mit einem JDK 5 auf der Kommandozeile aufbauen würde.

  

Aber im Gegensatz zu der Kommandozeilenversion von maven, die alles perfekt erstellt hat, hinterlässt m2eclipse eine große Anzahl von Buildfehlern im Quellcode.

Schwer zu sagen, was genau passiert, ohne diese "Fehler" zu sehen (sind das wirklich Fehler?). Bitte geben Sie einige Spuren.

  

Ist es möglich, dass ich m2eclipse nicht richtig konfiguriert habe? Wie würde ich das überprüfen?

Ein Unterschied besteht darin, dass m2eclipse standardmäßig eine eingebettete Version von Maven 3 verwendet, die wahrscheinlich nicht dieselbe Version ist, die Sie in der Befehlszeile verwenden. Sie können dies über Window V Einstellungen V Maven V Installation ändern (und Ihre eigene Installation hinzufügen):

Aber obwohl ich empfehlen würde, die gleiche Version unter Eclipse zu verwenden als auf der Kommandozeile, ist dies höchstwahrscheinlich nicht die Ursache des Problems. Maven 2 Builds sollten ohne Probleme auf Maven 3 laufen.

    
Pascal Thivent 21.08.2010, 19:25
quelle
1

Ich habe den Code ausgecheckt. Ich habe genau das gleiche Problem. Der Code scheint nur gebrochen zu sein.

Edit: Es ist definitiv. Sehen Sie sich die Klasse com.jappstart.service.auth.UserDetailsServiceImpl an. Es möchte die Methode public final UserDetails loadUserByUsername(final String username) überschreiben, aber diese Methode existiert nicht in der Schnittstelle, die die Klasse implementiert, und hat keine Oberklasse.

Edit: Ok, das erklärt nicht, warum es mit Maven Standalone erstellt. Das funktioniert auch für mich. Sehr eigenartig. Es scheint, dass etwas mit dem Build passiert, das nicht mit m2eclipse funktioniert.

Edit: Ich bin mir ziemlich sicher, dass der Code funktioniert, weil der Bytecode durch das Datanucleus-Plugin verändert wird. Wenn ich das Projekt als maven build (right-click- & gt; Run- & gt; maven-Paket) ausführe, erstellt es erfolgreich den Krieg mit m2eclipse. Also meine Vermutung ist, dass das Problem mit dem m2eclipse Maven Builder ist.

    
Raoul Duke 21.08.2010 19:56
quelle
1

Die Überschreibungsfehler werden angezeigt, wenn Eclipse für die Verwendung von Java 1.5 statt 1.6 konfiguriert ist. Überprüfen Sie die Projekteigenschaften.

    
Taylor Leese 21.08.2010 21:02
quelle