有没有办法强制java应用程序加载特定版本的jar,而不是在类路径中包含其他版本?
此处的许多其他用户都注意到Elasticsearch单元测试会抛出jar地狱错误。我已经尝试了所有的建议,但没有任何效果。我已经设置了大量的'排除'在我的pom.xml中,这没有帮助。这个罐子到底是怎么装的?
java.lang.RuntimeException: found jar hell in test classpath
..
Caused by: java.lang.IllegalStateException: jar hell!
class: javax.servlet.annotation.WebFilter
jar1: /Users/xx/.m2/repository/org/jboss/spec/javax/servlet/jboss-servlet-api_3.0_spec/1.0.1.Final/jboss-servlet-api_3.0_spec-1.0.1.Final.jar
jar2: /Users/xx/.m2/repository/org/jboss/spec/javax/servlet/jboss-servlet-api_3.1_spec/1.0.0.Final/jboss-servlet-api_3.1_spec-1.0.0.Final.jar
如何找到哪个jar链接到jboss-servlet-api_3.0_spec-1.0.1.Final.jar?我尝试过使用tattletale(这没有生成报告)和maven-duplicate-finder(这没有找到任何东西)。我可以破解它将jar-check选项设置为false,但后来我得到了阴影错误。
这些罐子不会出现在我的maven依赖树中。 我尝试从我的.m2目录中删除这两个版本,但是当我运行应用程序时它们只是再次弹出 - 有没有办法找出它从哪里加载?