2015-12-01 48 views
0

這是我的pom.xml的一部分如何在同一個java項目中獲得mahout和neo4j?

<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) 

我發現象夫需要Lucene的核心4.6.1,但使用的Neo4j-的Lucene索引2.2 Neo4j的。 1,我能做些什麼來解決這個問題?

回答

1

這是常見的問題。 Neo4j 2.3使用舊版本的Lucene(3.6.2)。在JVM中,您無法使用同一個庫的兩個不同版本。

你有幾個選擇如何處理它,但你不應該在生產中使用它們。

  1. 創建您自己的Class Loader。

  2. 的Maven插件陰影

+0

我只是複製[插件部分(https://github.com/lagodiuk/neo4j-uber-jar/blob/master/pom.xml)到我的聚甲醛。 XML,但它不起作用。 – yangyi

相關問題