Я использую 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, вы можете получить ошибки и странное поведение.
Есть ли лучшие практики или официальный документ, в котором говорится об этой проблеме? Что вы думаете об этом?