2010-12-29 7 views
1

ich einen frischen git clone meiner Java-Projekt unter C haben: \ dev \ 1234567890 (nicht über den Namen noch Sorge) und befiehlt mvn saubere Übersetzung endet mit BUILD ERFOLG. Wie auch immer, Maven kompiliert nicht alle Klassen in meinem Projekt und befiehlt erneut mvn compile (ohne sauber) kompiliert Rest der Klassen. Dies bedeutet, dass mvn clean test aufgrund fehlender kompilierter Klassen fehlschlägt.Seltsam Maven Verhalten mit verschiedenen Projektverzeichnispfade

C:\dev\1234567890> mvn clean compile 
... 
[INFO] Compiling 708 source files to C:\dev\1234567890\target\classes 
... 
[INFO] ---------------------------------------------------------- 
[INFO] BUILD SUCCESS 
[INFO] ---------------------------------------------------------- 

C:\dev\1234567890>mvn compile 
... 
[INFO] Compiling 690 source files to C:\dev\1234567890\target\classes 
... 
[INFO] ---------------------------------------------------------- 
[INFO] BUILD SUCCESS 
[INFO] ---------------------------------------------------------- 

dritter Lauf wird mir sagen, dass alle Klassen auf dem neuesten Stand sind.

Wohin die Dinge komisch gehen. Die folgenden Operationen enden mit einem erfolgreichen Build (mit mvn clean test).

C:\dev\1234567890>cd .. 
C:\dev>mv 1234567890 12345678901 
C:\dev>cd 12345678901 
C:\dev\12345678901>mvn clean test 
... 
[INFO] -------------------------------------------------------- 
[INFO] BUILD SUCCESS 
[INFO] -------------------------------------------------------- 
[INFO] Total time: 19.955s 
[INFO] Finished at: Wed Dec 29 11:57:52 EET 2010 
[INFO] Final Memory: 4M/58M 
[INFO] -------------------------------------------------------- 

Dann wieder, wenn ich den Namen des Verzeichnisses auf den ursprünglichen ändern (oder was auch immer 10 Zeichen lang) ich mit BUILD AUSFALL enden. Es scheint, dass nur die Länge des Verzeichnisnamens einen Unterschied macht (alles < 11 wird einen Build-Fehler ergeben). Fehle ich etwas? Irgendwelche Ideen? Ich bin außer ihnen.

mvn -version 
Apache Maven 3.0.1 (r1038046; 2010-11-23 12:58:32+0200) 
Java version: 1.5.0_22 
Java home: C:\Program Files (x86)\Java\jdk1.5.0_22\jre 
Default locale: fi_FI, platform encoding: Cp1252 
OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows" 

Antwort

0

Ich habe es geschafft, meine Probleme zu lösen von JDK 1.5 auf 1.6 zu wechseln. Aber ich habe immer noch keine Ahnung, warum es mit JDK 1.5 nicht richtig funktioniert hat.

0
C:\dev\1234567890> mvn clean compile 
[INFO] Compiling 708 source files to C:\dev\1234567890\target\classes 

C:\dev\1234567890>mvn compile 
[INFO] Compiling 690 source files to C:\dev\1234567890\target\classes 

Eine mögliche Erklärung wäre, dass Sie einige Maven Plugin haben, die der Kompilierung Phase gebunden Java-Quellcode erzeugt. Im ersten Aufruf würde es nach dem Compiler ausgeführt werden und die Quellen erzeugen, in dem zweiten Aufruf wären die Quellen bereits vorhanden, also würde der Compiler sie auch verwenden.

Wenn Sie ein Plugin haben, das eine Java-Quelle generiert, ordnen Sie es immer den Phasen generate-sources und generate-test-sources zu.

+0

Hey, danke für deine Antwort. Allerdings sind diese Quellcodes, die nicht kompiliert werden, bereits vorhanden. Und aus irgendeinem Grund (ich fange an, Hexerei irgendwie zu verdächtigen) funktioniert es, wenn ich den Namen des Projektverzeichnisses etwas länger ändere. – anssias