第三方库通常包含在您要部署到的应用程序服务器中,并与您的应用程序中包含的库进行分类。到目前为止,我已经以最简单和最简单的方式处理了这个问题:删除应用服务器上的库。
在我们的例子中,没关系,没有人依赖应用服务器为他们提供任何库。但是,如果我与许多其他人的应用程序一起运行我的应用程序,这可能又取决于应用程序服务器包含的库,这将不是一个解决方案。
这应该如何(干净地)解决?你怎么样?
一个问题的示例可能是:您使用 cxf、hibernate 和 jackson 构建了一个 jax-rs 应用程序,并部署到 glassfish 2.1.1。glassfish 提供 asm 3.1 库,但这会导致使用不兼容的 1.5 版本与 hibernate 发生冲突。同样,该应用程序需要 jackson 1.8.2(由于错误修复),但 glassfish 2.1.1 附带版本 0.9。繁荣。除了简单地删除有问题的库之外,还有什么方法可以解决这个问题?