首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加新4j-空间依赖会导致错误。

添加新4j-空间依赖会导致错误。
EN

Stack Overflow用户
提问于 2013-05-06 00:20:44
回答 1查看 574关注 0票数 1

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

代码语言:javascript
复制
<dependency>
  <groupId>org.neo4j</groupId>
  <artifactId>neo4j-spatial</artifactId>
  <version>0.11-SNAPSHOT</version>
</dependency>

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

代码语言:javascript
复制
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!

我不明白添加依赖项如何在运行时破坏项目。我没有改变任何密码。我会按要求发布任何必要的代码。

UPDATE:我尝试了一个以前的、稳定的版本,结果是一样的。此外,我在jar清单中添加了“供应商”和版本信息,这些信息似乎修复了vendorName ==空错误,并导致项目挂起关闭而不是打开。但我的问题,我将在这里重新表述,是一样的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-27 16:09:19

版本控制可能会出现问题。如果您添加了一个依赖项,并且您有另一个库具有相同的依赖项但版本不同,则Maven的通常行为是导入最新版本,偶尔也会因为更改的接口或其他原因而破坏依赖于旧版本的代码。

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

我确信有办法解决这个问题,但我不是Maven的专家。因此,在导入新东西时,请检查有效POM对版本的更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16390479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档