Do you speak Java?

poniedziałek, 15 września 2008

Pakiety - maven swoje, java swoje

Ostatnio w pracy zaobserwowałem bardzo dziwną rzecz. W Eclipse miałem zaimportowany projekt zarządzany przez mavena2 którego wiele klas moje IDE oznaczało pięknym czerwonym krzyżykiem. Według Eclipse zadeklarowane w klasach pakiety (logiczne*) różniły się od katalogów w których były one umieszczone (pakiety fizyczne*). "Co jest" - pomyślałem -"przecież 3 minuty temu budowałem ten projekt i maven nie zgłosił mi żadnego >>ale<<".

Wszedłem więc ponownie do linii koment i wpisałem "mvn clean install". I co? Nic.. widzę na własne oczy "Success". Jak bym nie zobaczył, to bym nie uwierzył. Po krótkim zbadaniu sprawy i paru testach okazało się, że maven2 (a konkretnie 2.0.9 - innych nie sprawdzałem), kompletnie nie zwraca uwagi na pakiety fizyczne. i w katalugu "target" buduje po prostu ścieżke zgodnie z pakietem logicznym.

Dość frustrujący błąd, zwłaszcza gdy chcemy coś zdebudować, a tu nic z tego... można stracić kilka cennych chwil zastanawiając się nad tym co jest nie tak. Miejmy nadzieje, że w najbliższej wersji zostanie to naprawione!

Miejcie się na baczności :)

* to moje nazewnictwo. nie wiem czy ktoś przede mną go używał. jeśli uważacie że jest błędne to z chęcią wysłucham ciepłych słów krytyki :)