eclipse i problem z classpath

0

Witam

Mam następujący problem który jest bardzo denerwujący... Otóż nie mam w pom`ie danego projektu biblioteki przykładowo log4j a w eclipse jak sobie otworze w Project Explorer Maven Dependencies to widzę że jest on widoczny. Mimo, że klikam na projekcie 2 przyciskiem myszy i wybieram z menu maven -> update project... to mimo wszystko nadal ta biblioteka jest dostępna.

I co dziwne projekt się dobrze buduje jak dam w konsoli (linuxowej) mvn clean install to projekt się zbuduje. Dlaczego eclipse dodaje sobie samo do classpatha libki ?? Strasznie to jest denerwująco potem jak deployuje projekt na serwerze to wyskakują NoClassDefFound i inne takie co jest spowodowane właśnie tym iż tych libek nie ma w pom`ie. Mimo tego że ich tam nie ma projekt się dobrze buduje i jest gitara.

Jak zrobić, żeby eclipse dobrze odwzorowywało biblioteki a nie samo sobie dodawało ????

0

Głowe dam że jedna z bibliotek które w pomie masz ma w zależnościach tego log4j.
A NoClassDefFound leci pewnie dlatego że przecież Maven buduje ci tylko jara z twoich plików a reszty jarów szuka w repozytorium. Jak na serwerze nie zrobisz mvn install i nie pociagniesz tych libów to guzik ci zadziała.

0

I tak i nie

Ja tylko piszę na przykładzie log4j jest używane przez niektóre klasy z danego modułu i jeśli usunę tę bibliotekę z poma to projekt też się buduje....... Dlaczego ??
Mi się widzi, że eclipse jest na tyle tępe, że dużo sobie przetrzymuje w pamięci .... Np dany moduł korzysta z innej biblioteki napisanej osobiście i pomimo tego, że ją usuwam z poma to eclipse nadal trzyma to sobie w swoich ustawieniach, pomimo refreshów update itd....

0

Nie, ty po prostu nie rozumiesz jak działa Maven. Jeśli jakaś biblioteka korzysta z innej biblioteki i ma to zdefiniowane w swoim pomie to nie musisz tej potrzebnej biblioteki samemu deklarować (i chwała Bogu! Inaczej umarłbyś próbując wszystkie zalezności sobie zadeklarować)! Maven sam sobie rozkmini te zależności i ściągnie je do repozytorium.
Nie ma znaczenia czy ty sobie log4j zostawisz w pomie czy nie. Jeśli coś (biblioteka którą deklarujesz w pomie) korzysta z log4j to Maven go ściągnie i tyle.

1 użytkowników online, w tym zalogowanych: 0, gości: 1