Widziałem wiele samouczków i aplikacji, które umieszczają swoje słoiki w ścieżce budowania, podczas gdy inne umieszczają je w folderze web-inf/lib. Czy są jakieś znaczące różnice ? Jakie są plusy i minusy obu? Co to jest wskaźnik dla mnie, aby umieścić pewien słoik wewnątrz folderu libs i umieścić słoik w ścieżce budowania?Java Konfigurowanie ścieżek kompilacji lub folderu WEB-INF/lib
Odpowiedz
Aplikacja z folderem WEB-INF to aplikacja internetowa. Oznacza to, że zostanie spakowany jako plik WAR i wdrożony na serwerze.
Jeśli korzystasz z IDE jak zaćmienie, a wyeksportujesz projekt jako plik WAR, automatycznie wykona on słoiki pod folderem lib i zapakuje je wraz z WAR, co spowoduje ich udostępnienie dla aplikacji uruchomionej serwer (słoiki pod WEB-INF/lib są zawarte w ścieżce classpath aplikacji).
Jeśli umieścisz je nigdzie indziej i dodasz do ścieżki kompilacji, podczas eksportowania projektu musisz zadeklarować, że chcesz, aby słoiki w ścieżce kompilacji również zostały uwzględnione.
Zasadniczo nie ma dużej różnicy, ale jeśli wiesz, że potrzebujesz tego słoika w czasie wykonywania (tj. Po wdrożeniu aplikacji na serwerze), lepiej umieścić go w folderze WEB-INF/lib.
Co masz na myśli pod nazwą ścieżka kompilacji? Większość używanych przez ciebie JAR musi być dostępna podczas budowania (kompilacji), ponieważ twój kod zależy od nich - w przeciwnym razie nie będzie się kompilował.
Prawdziwe pytanie dotyczy umieszczenia plików JAR w katalogu WEB-INF/lib
w stosunku do katalogu kontenera /lib
. Generalnie powinieneś zawsze umieszczać swoje JAR-y w aplikacji pod numerem WEB-INF/lib
. Umieszczając je globalnie ma kilka konsekwencji:
singletons obecnie globalny dla wszystkich aplikacji internetowych (załadunek jedna klasa) czy stwardnienie rozmieszczonego
łatwiej wprowadzić przeciek pamięci, jeśli biblioteka posiada odniesienie do dowolnego twoje klasy (patrz wyżej)
nie powielać tych samych klas (każda aplikacja internetowa będzie ponownie wykorzystać tę samą klasę, w przeciwieństwie do posiadania odrębnej kopię w każdej ładowarki klasy
Czy mógłbyś podać w tym celu jakąś dokumentację? – Jewels