Сторонние библиотеки часто включаются сервером приложений, на котором выполняется развертывание, и классифицируются с библиотеками, включенными в ваше приложение. До сих пор я справлялся с этим самым простым и хакерским способом: удалением библиотек на сервере приложений.
В нашем случае все в порядке, никто не полагается на сервер приложений для предоставления им каких-либо библиотек. Но если бы я запускал свое приложение вместе с множеством других приложений, что опять же может зависеть от библиотек, включенных сервером приложений, это не было бы решением.
Как это должно быть решено (чисто)? Как ты это делаешь?
Примером проблемы может быть следующее: вы создаете приложение jax-rs, используя cxf, hibernate и jackson, и развертываете его в Glassfish 2.1.1. Glassfish предоставляет библиотеку asm 3.1, но это вызывает конфликты с hibernate при использовании несовместимой версии 1.5. аналогично приложению требуется jackson 1.8.2 (из-за исправления ошибки), но Glassfish 2.1.1 поставляется с версией 0.9. БУМ. Любой способ исправить это, кроме простого удаления оскорбительных библиотек?