最新版本和旧版本冲突的两个Maven依赖关系

我在这里使用spring-data-dynamoDB项目,根据它的pom.xml,他们使用了aws-java-sdk的 1.6.9.1版本,但我需要使用最新版本的aws-java-sdk来实现我的项目它的function也实现了amazon s3。 如果我包含它的依赖,

 com.amazonaws aws-java-sdk 1.7.9  

我得到如下例外,

 12:51:25.298 [main] DEBUG osbfsDefaultListableBeanFactory - Retrieved dependent beans for bean '(inner bean)': [_relProvider] 12:51:25.307 [main] ERROR oswcContextLoader - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.hateoas.config.HypermediaSupportBeanDefinitionRegistrar$Jackson2ModuleRegisteringBeanPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_halObjectMapper': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.fasterxml.jackson.databind.ObjectMapper]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE] ....... ....... Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_halObjectMapper': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.fasterxml.jackson.databind.ObjectMapper]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1076) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE] ....... ....... 

我已尝试排除如下,也是相同的结果,

  org.socialsignin spring-data-dynamodb 1.0.0-SNAPSHOT   com.amazonaws aws-java-sdk    

现在可以在我的项目中使用最新版本的aws-java-sdk吗? 或者必须更新spring-data-dynamoDB pom.xml,如果是这样,我只能使用它或者什么? 感谢Michaellavelle这个巨大的项目。 它有助于我完成DynamoDB部分。

谢谢你@ user944849。 问题是在aws-java-sdk中使用的jackson libs是spring-data-rest-webmvc中的较低版本并与之冲突,所以通过从aws-java-sdk构建正确排除jackson libs。 我得到的解决方案是,

  com.amazonaws aws-java-sdk 1.7.9   jackson-core com.fasterxml.jackson.core   jackson-databind com.fasterxml.jackson.core   jackson-annotations com.fasterxml.jackson.core    

由于声誉,我无法提前回复。 对于像我一样坚持的人来说,这可能会有用。 谢谢。

出于某种原因,从aws-java中排除jackson并不适合我。

 java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z 

看看这个问题,看起来像jackson不可用,或者我们在项目中有错误的版本。 这种方法似乎已经在2.3.0中添加,这是jackson的最新版本。 我添加了对最新版jackson的依赖,现在我的代码很高兴。

  com.amazonaws aws-java-sdk-s3 1.9.6   com.fasterxml.jackson.core jackson-core 2.3.0   com.fasterxml.jackson.core jackson-databind 2.3.0   com.fasterxml.jackson.core jackson-annotations 2.3.0  

我不确定是否需要注释和数据绑定。 此外,我正在开展一个庞大的项目,因此不同forms的jackson可能会从各种其他依赖项,jersey,google-http-client-jackson2进来。 因此,查看maven依赖图以查看jackson的来源也是明智之举。

NoClassDefFound for com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering的错误是NoClassDefFound for com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering 。 我在GrepCode中搜索了该类,并发现它位于com.fasterxml.jackson.core:jackson-core库中。 我的猜测是你尝试过的两个版本的aws-java-sdk库都指定了不同的jackson-core库版本作为传递依赖。 您的应用程序可能也明确依赖于jackson-core – 比以后的aws-java-sdk所需的版本更旧。 该项目需要使用包含requiresPropertyOrdering方法的jackson-core版本。 您应该能够通过运行mvn dependency:tree (或IDE中的等效项)来查看所有传递依赖项。

一个解决方法是将jackson-core库添加到项目的POM(或父POM)中的块,以确保使用正确的版本。