我在eclipse中编写了一个ES插件,并执行“maven install”来构建.zip包。
然后转到ES'bin'目录,安装此插件,报告错误为:
错误:java.lang.IllegalStateException:jar地狱! class:com.spatial4j.core.context.jts.DatelineRule jar1:/opt/srv/elasticsearch-2.3.4/lib/spatial4j-0.5.jar jar2:/tmp/4666854054181704172/temp_name1369332854/spatial4j-0.5.jar
结果是这个插件.zip包中包含的ES Meven依赖项jar,例如spatial4j-0.5.jar,compress-lzf-1.0.2.jar,elasticsearch-2.3.4.jar,lucene-suggest -5.5.0.jar等。
这些罐子会与ES'lib'目录中ES的相关罐子发生冲突。
如何排除这些'Meven依赖'罐子?我试图修改pom.xml和'src / main / assemblies / plugin.xml',但失败了。
答案 0 :(得分:0)
在碰撞罐的<dependency>
标签中,您需要将<scope>
置于提供。这样它们就不会被包含在包阶段的最终构建中,但是它们将被包含在本地编译中