在我的项目中,我依赖于org.slf4j-api:1.7.2
and org.eclipse.equinox:org.eclipse.equinox.http.jetty:2.0.100
。
Jetty 团队中的某org.slf4j.Logger
个人将这两个类复制到org.slf4j.LoggerFactory
了他们的 JAR 中。谢谢你
现在我org.slf4j.Logger
在 classpath 上有两次。只要它们的公共 API 相同,这不是一个大问题。
如何编写一个测试来确保两个类文件的公共 API 相同?
编辑用反射检查类看起来是一个明显的解决方案,但我如何加载它们?有两种资源org/slf4j/Logger.class
可用。如何将原始.class
文件转换为java.lang.Class
我可以检查的文件?
Class.forName()
在我的情况下不起作用,因为那只会给我两者之一(我什至不知道哪一个)。