我有一个Web应用程序,其中依赖项引入两个名为:
的jar当我打包WAR时我在WEB-INF / lib目录中都有这两个,我的问题是应用程序正在运行以及为什么我不会遇到任何问题,因为显然我在两个jar中都有相同的类应该有问题吗?
答案 0 :(得分:20)
对于Java,您提供的课程版本并不重要。默认的类加载器将只选择它可以找到的类路径中的第一个。
由于您可以无错误地运行应用程序,这意味着以下之一:
如果javassist-3.9.0.GA.jar是类路径中的第一个:您的应用程序不依赖于javassist-3.20.0-GA.jar中的新API或错误修正也没有您使用的API这个库之间的更改(图书馆不应该在次要版本之间做)
如果javassist-3.20.0-GA.jar是类路径中的第一个:库是向后兼容的
我建议:
答案 1 :(得分:3)
回答"有关如何修复它的任何建议?"看看Resolving conflicts using the dependency tree。使用命令let result = Double(myInt!) / lutning * M_PI
,您将能够知道依赖性来自何处。当您知道哪些工件依赖于javassist时,您可以添加一个排除条目以避免其中一个javassist版本。