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

jAd*_*ict 8 java amazon-web-services maven spring-data spring-data-rest

我从这里使用spring-data-dynamoDB项目,根据它的pom.xml他们使用了aws-java-sdk的1.6.9.1版本,但是我需要使用最新版本的aws-java-sdk来实现我的项目它的功能也实现了亚马逊s3.如果我包括它的依赖,

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.7.9</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我得到如下例外,

12:51:25.298 [main] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Retrieved dependent beans for bean '(inner bean)': [_relProvider]
12:51:25.307 [main] ERROR o.s.w.c.ContextLoader - 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]
.......
.......
Run Code Online (Sandbox Code Playgroud)

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

<dependency>
   <groupId>org.socialsignin</groupId>
   <artifactId>spring-data-dynamodb</artifactId>
   <version>1.0.0-SNAPSHOT</version>
   <exclusions>
      <exclusion>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
      </exclusion>
   </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

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

jAd*_*ict 19

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

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.7.9</version>
    <exclusions>
        <exclusion>
            <artifactId>jackson-core</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jackson-databind</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jackson-annotations</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
    </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

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