You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装Elasticsearch自定义插件时遭遇Jackson Jar Hell问题求助

解决Elasticsearch自定义插件的Jackson依赖Jar Hell问题

这个Jar Hell问题其实很好解决,核心原因是你的插件打包时把Elasticsearch已经自带的Jackson相关Jar也包含进去了——哪怕版本完全一致,Elasticsearch的Jar Hell检查机制也会判定为冲突,因为它不允许同一个类出现在多个Jar包中。

看你的pom.xml配置,你只把elasticsearch依赖设为了provided scope,但jackson-databind还是默认的compile scope,这就导致Maven构建插件时会把Jackson的Jar打包到插件目录里,和Elasticsearch核心lib目录里的Jar产生重复冲突。

具体修复步骤

把Jackson相关依赖的scope也设置为provided,因为Elasticsearch已经在它的核心库中提供了这些类,不需要插件自己携带。修改后的pom.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>
        <scope>provided</scope>
    </dependency>
</dependencies>

额外注意事项

如果你还依赖Jackson的其他模块(比如jackson-core、jackson-annotations),同样需要把它们的scope也设为provided,避免它们被打包进插件引发新的Jar Hell问题。

修改完成后重新构建插件并安装,Jar Hell的错误就会消失了——现在插件会直接使用Elasticsearch自带的Jackson版本,不会再出现重复类的冲突。

内容的提问来源于stack exchange,提问作者Nariman Esmaiely Fard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:08:54