2013-06-01 120 views
26

我使用Jersey 1.17.1和Jackson 2.2.1。泽西杰克逊和codehaus vs. fasterxml

杰克逊似乎将包裹从org.codehaus切换到com.fasterxml。我已经正确配置了所有代码并使用了最新的杰克逊。然而,泽西队似乎仍在拉拢org.codehaus.jackson。有什么方法可以缓解这种情况,还是应该坚持使用codehaus包裹,直到球衣升级为使用fasterxml包裹为止?

回答

22

旧的杰克逊图书馆正在作为jersey-json工件的依赖关系被拉入。当

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <version>1.17</version> 
</dependency> 

包含在您的POM中,您将自动获取项目中包含的org.codehaus.jackson库的版本。不幸的是,jersey-json本身对Jackson类有链接时间依赖性,所以你不能简单地使用exclusions。你想要做的是完全省略它。这实际上是一堆你不一定需要的JSON库的包装库。一旦取消,您可以为杰克逊2.2.1库和JAX-RS提供程序添加依赖关系:

<dependency> 
    <groupId>com.fasterxml.jackson.jaxrs</groupId> 
    <artifactId>jackson-jaxrs-json-provider</artifactId> 
    <version>2.2.1</version> 
</dependency> 

注意,与新泽西州的JSON删除你不再有Stax2,抛弃,或JAXB提供商。如果您需要这些,那么您将不得不手动定位并添加它们的依赖关系。

+3

从Jackson 2.2开始,代码位置是https://github.com/FasterXML/jackson-jaxrs-providers/blob/master/json/pom.xml。 – koppor

相关问题