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
- 1. Konfigurowanie sbt do używania Java 7 do kompilacji?
- 2. Xcode zmienia lokalizację folderu aplikacji na kompilacji
- 3. Tworzenie tymczasowego folderu w java
- 4. Optymalizacja kompilacji: Java bytecode
- 5. Konfigurowanie Appstatów Java GAE dla zadania cron
- 6. Konfigurowanie ActiveMQ
- 7. Konfigurowanie Qt Creator do pracy z CDB
- 8. Java Libraries Runtime vs Czas kompilacji
- 9. Typy/warianty kompilacji Maven lub Gradle
- 10. Czas wydruku Java ostatniej kompilacji
- 11. Wymuszanie adnotacji java podczas kompilacji
- 12. Java Drzewo do reprezentowania plików (pliki/dir) z listy ścieżek
- 13. Zmień lokalizację folderu node_modules
- 14. Błąd czyszczenia folderu kompilacji - Nie masz wymaganych uprawnień do plików
- 15. Konfigurowanie Maven 3 poprawnie
- 16. Konfigurowanie zaćmienia na ubuntu
- 17. błąd ogólny czas kompilacji Java migracji z Java 6 do 7 lub 8
- 18. Konfigurowanie IntelliJ do używania kompilatora Groovy Zamiast kompilatora Java
- 19. Ustawianie kolejności ścieżek klas w aplikacji playframework
- 20. Konfigurowanie PSake
- 21. Czy można używać bezpośredniego wstawiania ścieżek za pomocą JDBC/Java?
- 22. Konfigurowanie wtyczki BlackBerry Eclipse dla składników 4.70 lub 5.0
- 23. Konfigurowanie usług IIS 7 do obsługi plików statycznych za pośrednictwem dostawcy ścieżek wirtualnych
- 24. Konfigurowanie res srcDirs dla androidTest sourceSet
- 25. TeamCity Konfigurowanie MSTest 2012
- 26. Konfigurowanie Java/J2EE środowisko programistyczne z: Eclipse, Tomcat oraz Vagrant
- 27. Funkcja łączenia ścieżek?
- 28. Jak naśmiewać się przy użyciu ścieżek względnych ścieżek?
- 29. Narzędzie do wyodrębniania ścieżek stosu java z plików dziennika
- 30. Projekt Gradle java zastępuje pojedynczą linię w pliku podczas kompilacji
Czy mógłbyś podać w tym celu jakąś dokumentację? – Jewels