如何在同一个java项目中获得mahout和neo4j



这是我的pom.xml 的一部分

<dependency>
    <groupId>org.apache.mahout</groupId>
    <artifactId>mahout-core</artifactId>
    <version>0.9</version>
</dependency>
<dependency>
    <groupId>org.apache.mahout</groupId>
    <artifactId>mahout-math</artifactId>
    <version>0.9</version>
</dependency>
<dependency>
     <groupId>org.neo4j</groupId>
     <artifactId>neo4j</artifactId>
     <version>2.2.1</version>
</dependency>

错误是

Caused by: java.lang.ClassNotFoundException: org.apache.lucene.document.Fieldable
      at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我发现mahout需要lucene核心4.6.1,但使用neo4j lucene指数2.2.1的neo4j,我能做些什么来解决这个问题?

这是一个常见问题。Neo4j2.3使用旧版本的Lucene(3.6.2)。在JVM中,您不能使用同一库的两个不同版本。

你几乎没有选择如何处理它,但你不应该在生产中使用它们。

  1. 创建您自己的类加载器。

  2. Maven Shade插件

相关内容

  • 没有找到相关文章

最新更新