Java, Maven, JBoss AS, Windows – eine unheilvolle Kombination

So … wie vielleicht schon aus einigen meiner letzten Beiträge erkennbar geworden ist, bin ich eigentlich kein großer Fan des Betriebssystems „Windows“. Während es für viele Nutzer vielleicht eine gute Wahl sein mag, ist es für Softwareentwickler (die nicht unbedingt Windows-Anwendungen entwickeln) schon nicht mehr optimal. Aber was gar nicht geht: Windows als Server.

Mit genau einem solchen Server hatte ich nämlich heute einige Stunden lang Spaß. Man nehme ein Maven-Projekt, in dem es einen Sourcepfad /src/main/java/de/test/meinProjekt/ gibt. Darunter hat man Klassen, alles ist gut, alles funktioniert.

Jetzt nehme man an, es werden Dateien in das Package/Verzeichnis /src/main/resources/java/de/test/meinprojekt/ gepackt. Sieht nach harmlos aus, ist aber katastrophal! Wer findet den Fehler?

Genau: das große „P“ im ersten Pfad funktioniert gut, solange man keinen gleichlautenden Pfad mit anderer Groß-/Kleinschreibung im Parallelverzeichnis hat. Durch diese kleine Unaufmerksamkeit ist die gesamte Applikation beim Starten im JBoss nämlich mit einer total zusammenhangslosen Fehlermeldung gar nicht erst gestartet. Es scheint, als beachte der Classloader des JBoss‘ das Casing der Pfade/Packages, was ja auch richtig ist. Im entstandenen Archiv, welches von Maven unter Windows zusammengebaut wurde, stehen die Sachen aber alle im gleichen Ordner mit kleinem „p“. Deswegen werden sie vom Classloader nicht gefunden.

Fiese Sache!

Zu meiner Verteidigung: der Package-Namen mit dem großen P stammte nicht von mir. Ich würde sowas doch niemals tun … *hüst*