Потенциальное несоответствие версий, о которых упоминали другие, на самом деле является одним из примеров более широкого набора проблем с загрузкой классов, с которыми вы можете столкнуться, если развернете один и тот же класс (ы) в разных банках.
Ошибки загрузки классов, скорее всего, укусят вас в контейнере сервера приложений / EJB или аналогичной установке, где есть несколько компонентов / приложений, загруженных иерархией загрузчиков классов. Однако , если один и тот же класс загружен двумя разными загрузчиками классов, JVM считает их совершенно разными классами! , что может привести к различным ошибкам времени выполнения, таким как LinkageError
(например, если две разные версии одного и того же столкновение определений классов - как описано в других ответах), ClassCastException
(если выполняется попытка приведения между двумя определениями классов, загруженными разными загрузчиками классов) и т. д. Поверьте, ад загрузки классов - это место, которое вы не хотите видеть.
Я бы положил всю библиотеку в одну банку, чтобы минимизировать этот риск.