添加neo4j空间依赖性会导致错误

时间:2013-05-06 00:20:44

标签: maven neo4j apache-pivot

我有一个项目,其中包括Apache Pivot和Neo4j。我的项目编译并运行。当我尝试添加Neo4j / Spatial时:

<dependency>
  <groupId>org.neo4j</groupId>
  <artifactId>neo4j-spatial</artifactId>
  <version>0.11-SNAPSHOT</version>
</dependency>

项目编译但不会运行。编译器在其中一个BXML文件中输出错误:

org.apache.pivot.serialization.SerializationException: java.util.ServiceConfigurationError: javax.imageio.spi.ImageOutputStreamSpi: Provider com.sun.media.imageioimpl.stream.ChannelImageOutputStreamSpi could not be instantiated: java.lang.IllegalArgumentException: vendorName == null!

我无法理解添加依赖项如何在运行时破坏项目。我没有更改任何代码。我会按照要求发布任何必要的代码。

更新:我尝试过以前的稳定版本,结果相同。此外,我已将“供应商”和版本信息添加到我的jar清单中,似乎修复了vendorName == null错误并导致项目挂起而不是打开。但我的问题,我将在此重述,是一样的。

如何在不更改代码的情况下添加依赖项,导致正常运行的项目在运行时失败?我不明白如果我不调用它,添加依赖项会如何改变执行。

1 个答案:

答案 0 :(得分:0)

版本控制可能存在问题。如果你添加了一个依赖项,并且你有另一个具有相同依赖但是版本不同的库,那么Maven的通常行为是导入最新版本,偶尔也会破坏依赖于旧版本的代码。改变界面或其他什么。

因此,如果A依赖于B v1,并且C依赖于Bv2,那么当你添加C时,它会在有效POM中用Bv2覆盖Bv1,理论上它可能会破坏它。

我确信有一种解决方法,但我不是Maven的专家。因此,在导入新内容时,请检查有效的POM是否有版本更改。