当com.fasterxml.aalto-xml在Maven依赖项中时解析XML

时间:2015-09-04 04:00:14

标签: java xml maven fasterxml

我在使用库com.fasterxml.aalto-xml时遇到了问题。

我有一个不依赖于库com.fasterxml.aalto-xml的项目A(Dspace)。

我开发了一个库B,它使用依赖于com.fasterxml.aalto-xml的库C.

  

我想知道为什么com.fasterxml.aalto-xml被添加为   通过B依赖于A - > C,A拿起来   com.fasterxml.aalto-xml执行他通常的XML解析。

问题是,它打破了应用程序。 com.fasterxml.aalto-xml无法正确解析最初带有A的XML。出现问题。

我想了解它为什么会发生。有没有办法告诉A不要使用com.fasterxml.aalto-xml但仍然有B - > C - > com.fasterxml.aalto-xml在A项目中工作。

那些XML解析器有什么特别之处?我只是不明白为什么A会选择com.fasterxml.aalto-xml来处理它,而它没有依赖它。

我可以看到lib也是一个osgi包jar,这可能有任何暗示吗?

  

我的意思是原来A(Dspace)没有alto工作并使用任何东西   解析器它有,为什么现在选择alto它在依赖?什么机制允许?

1 个答案:

答案 0 :(得分:1)

com.fasterxml:aalto-xml包含StAX API的实现。该API(它是从Java 6开始的JRE的一部分)使用描述here的服务提供者发现机制来定位实现。因此,只需将Aalto JAR添加到类路径中,即可更改StAX API使用的实现。所有使用StAX API的库(在您的情况下为A和C)都会受到同样的影响。