Я использую Tomcat для размещения приложений Java Web и веб-сервисов в течение длительного времени. В основном для приложений Spring и Grails.
В последнее время в одном проекте возникло обсуждение, как работать с зависимостями/библиотеками в производственных средах Tomcat:
В моих проектах я развертываю большие файлы WAR, содержащие все необходимые зависимости для приложения в папке WEB-INF/lib. Единственными вещами, которые я помещаю в папку tomcat/lib, являются JAR файлы для JDBC-подключений, управляемые tomcat.
Клиент имеет долгую историю с WebSphere и считает, что контейнер должен содержать большую часть необходимых зависимостей. Поэтому они хотят помещать файлы JAR для используемых фреймворков или API WebService (например, Metro) в папку tomcat/lib и иметь тощие WAR файлы.
Проблема с этим решением на мой взгляд заключается в том, что если у вас есть приложение, для которого требуется другая версия зависимости, которая уже включена в папку tomcat/lib, вы можете получить ошибки и странное поведение.
Есть ли какая-нибудь передовая практика или официальный документ, который говорит об этой проблеме? Каково ваше мнение об этом?