我正在为Elasticsearch编写一个自定义插件,这个插件依赖于Jackson库。当我在Elasticsearch上安装插件时,出现了这个错误:
线程中的异常" main" java.lang.IllegalStateException:由于jar地狱而无法加载插件AdapterPlugin 引起:java.lang.IllegalStateException:jar地狱! class:com.fasterxml.jackson.core.Base64Variant jar1:C:\ elasticsearch-6.2.4 \ lib \ jackson-core-2.8.10.jar jar2:C:\ elasticsearch-6.2.4 \ plugins.installing-4501343069579282727 \ jackson-core-2.8.10.jar 在org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:275) 在org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:192) 在org.elasticsearch.plugins.PluginsService.checkBundleJarHell(PluginsService.java:473) ......还有12个
我该如何解决这个问题?如你所见,我试图将我的杰克逊版本从最新版本更改为2.8.10(弹性6.2.4使用它),但这确实有帮助。
我正在使用maven,这是我用于我的cuatom插件的pox.xml文件:
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.10</version>
</dependency>
</dependencies>
答案 0 :(得分:0)
如何在类路径中包含依赖项? Maven的?摇篮?需要更多信息。如果你使用Maven,你可以在添加Elasticsearch时使用排除,并自己包含jackson lib:
<project>
...
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.2.4</version>
<scope>compile</scope>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>