Почему предпочтение / WEB-INF / lib для /META-INF/MANIFEST.MF для веб-приложений? - PullRequest
4 голосов
/ 18 ноября 2011

Интересно, почему в спецификациях веб-приложений Java был установлен специальный каталог для зависимостей: /WEB-INF/lib

Действительно, почему бы не использовать классический /META-INF/MANIFEST.MF файл?

Кто-то скажет, что веб-приложения более безопасны, поскольку библиотеки физически интегрированы в файл WAR.

НоЕсли мы так думаем, мы могли бы задаться вопросом:

Почему для простого Java-приложения (простого JAR) нет специального каталога для зависимостей?Это также может быть более безопасным, поскольку нет риска иметь неправильный путь к классу (например, неправильно измененный) в файле манифеста.

Другой скажет, что веб-приложение разработано для переносимости, поэтому преимущество /WEB-INF/lib состоит в том, чтобы небеспокоиться о ссылочных зависимостях.

Мне любопытно узнать ваше мнение по этому вопросу.

Ответы [ 2 ]

5 голосов
/ 18 ноября 2011

Баночка - это стандартная библиотека. Для обычных утилитарных банок, вероятно, лучше хранить их отдельно. Если у библиотеки есть зависимость от другой библиотеки, и вам нужна эта зависимая библиотека больше, чем раз, когда вы потратите пространство, память и, возможно, не решите проблемы из-за разных версий библиотеки.

Однако веб-приложение представляет собой пакет приложений. Вы должны убедиться, что все работает, чтобы добавить необходимые библиотеки.

1 голос
/ 18 ноября 2011

Поскольку WEB-INF / lib обеспечивает очень простой, автономный пакет библиотек и упрощает полное развертывание для наиболее распространенных случаев использования.

/WEB-INF/web.xml
/WEB-INF/lib/utils.jar
/WEB-INF/classes/com/example/Servlet.class
/page.jsp

Это полная лодка WAR,а в Servlet 3.0 web.xml в основном пуст.Простая компоновка, тривиальное создание и отдельный артефакт для работы в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...