Probleme mit FindBugs und Maven, nach einer Maven-Aktualisierung (oder auch nicht)

Notiz an mich selber:
Wenn ich das nächste Mal Maven auf eine neuere Version aktualisiere: kopiere die verdammte settings.xml ins neue Installationsverzeichnis!

Was war passiert? Gestern auf der Arbeit von Maven 2.0.9 auf 2.2.1 umgestiegen. Die Umgebungsvariable M2 und M2_HOME angepasst, auf die Konsole gewechselt, “mvn -v” eingegeben, läuft! Nun wollte ich mir für ein neues Projekt testweise die Maven-Seite mittels “mvn site” generieren lassen. Nur irgendwas schien mit dem FindBugs-Reporting nicht zu passen. Das war der (gekürzte) Stacktrace, den ich bekam:

     1 Exception in thread "main" java.io.FileNotFoundException: C:\ProjectX\und (Das System kann die angegebene Datei nicht finden)
     1     at java.util.zip.ZipFile.open(Native Method)
     1     at java.util.zip.ZipFile.<init>(ZipFile.java:114)
     1     at java.util.zip.ZipFile.<init>(ZipFile.java:131)
     1     at edu.umd.cs.findbugs.classfile.impl.ZipFileCodeBase.<init>(ZipFileCodeBase.java:53)
     1     at edu.umd.cs.findbugs.classfile.impl.ZipCodeBaseFactory.countUsingZipFile(ZipCodeBaseFactory.java:92)
     1     at edu.umd.cs.findbugs.classfile.impl.ZipCodeBaseFactory.makeZipCodeBase(ZipCodeBaseFactory.java:46)
     1     at edu.umd.cs.findbugs.classfile.impl.ClassFactory.createFilesystemCodeBase(ClassFactory.java:97)
     1     at edu.umd.cs.findbugs.classfile.impl.FilesystemCodeBaseLocator.openCodeBase(FilesystemCodeBaseLocator.java:75)
     1     at edu.umd.cs.findbugs.classfile.impl.ClassPathBuilder.processWorkList(ClassPathBuilder.java:564)
     1     at edu.umd.cs.findbugs.classfile.impl.ClassPathBuilder.build(ClassPathBuilder.java:195)
     1     at edu.umd.cs.findbugs.FindBugs2.buildClassPath(FindBugs2.java:584)
     1     at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:181)
     1     at edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:348)
     1     at edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1057)
     1 Scanning archives (0 / 55)
     1 Java Result: 1
[Fatal Error] C:%5CProjectX%5Ctarget%5CfindbugsTemp.xml:1:1: Premature end of file.
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Premature end of file.
[INFO] ------------------------------------------------------------------------
[INFO] Trace

Okay, findbugsTemp.xml hatte die Größe von 0 Bytes. Kein Wunder also, dass er sich über das vorzeitige Ende der Datei beschwert. Da ich das komplette Projekt und somit auch die POM.XML neu begonnen hatte, ging ich davon aus, dass ich irgendwo eine Fehler in meiner Konfiguration hatte respektive eine Version verwendete, die ggf. noch einen Fehler enthalten würde.

Erst nachdem ich eine Nacht drüber geschlafen hatte, fiel mir etwas an der Zeile

1 Exception in thread "main" java.io.FileNotFoundException: C:\ProjectX\und (Das System kann die angegebene Datei nicht finden)

auf. Und zwar das “und”! Argh!!! Das Problem lag gar nicht an FindBugs. Es lag daran, dass nach der Neuinstallation von Maven, die Standard-Konfiguration von Maven verwendet wurde und in dieser das Repository nun mal im Home-Verzeichnis befindet. In diesem Falle also “C:\Dokumente und Einstellungen\Joachim\.m2\repository”. Und Leerzeichen in der Pfadangabe zum Repository sind irgendwie nicht gerne gesehen.

Also in der settings.xml das Repository wieder ins Root-Verzeichnis verlegt, wo es vor der Aktualsierung von Maven auch lag. Ich muss also schon einmal über einen ähnlichen Fehler gestolpert sein.

<!-- setting.xml -->
<settings>
 <localRepository>c:/.m2</localRepository>
</settings>

Nun läuft es ja wieder. Nur frage ich mich, über wen ich mich mehr ärgern sollte. Über Microsoft oder die Maven-Entwickler… Naja, whatever.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>