AWS Java SDK采用旧版本的jackson jar

AWS Java SDK采用旧版本的jackson jar,java,amazon-web-services,sdk,jackson,build.gradle,Java,Amazon Web Services,Sdk,Jackson,Build.gradle,目前,我正在我现有的应用程序中添加AWS Java SDK,以执行与AWS云相关的操作。在导入aws java sdk的最新版本(即1.11.113)时,我遇到运行时异常。在研究了异常之后,原因是java sdk使用了不推荐的版本或jackson jar的不兼容版本 sdk正在使用版本4.1的jackson jar,而所需版本必须至少为5。即使我给出了最新的jacksonjar,但它仍然引用了SDK中的jar。下面的代码快照将有助于轻松识别这一点 Caused by: java.lang.NoS

目前,我正在我现有的应用程序中添加AWS Java SDK,以执行与AWS云相关的操作。在导入aws java sdk的最新版本(即1.11.113)时,我遇到运行时异常。在研究了异常之后,原因是java sdk使用了不推荐的版本或jackson jar的不兼容版本

sdk正在使用版本4.1的jackson jar,而所需版本必须至少为5。即使我给出了最新的jacksonjar,但它仍然引用了SDK中的jar。下面的代码快照将有助于轻松识别这一点

Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.enable([Lcom/fasterxml/jackson/core/JsonParser$Feature;)Lcom/fasterxml/jackson/databind/ObjectMapper;
    at com.amazonaws.partitions.PartitionsLoader.<clinit>(PartitionsLoader.java:54) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionMetadataFactory.create(RegionMetadataFactory.java:30) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionUtils.initialize(RegionUtils.java:64) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionUtils.getRegionMetadata(RegionUtils.java:52) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionUtils.getRegion(RegionUtils.java:105) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.Region.getRegion(Region.java:43) [aws-java-sdk-core-1.11.113.jar:]
原因:java.lang.NoSuchMethodError:com.fasterxml.jackson.databind.ObjectMapper.enable([Lcom/fasterxml/jackson/core/JsonParser$Feature;)Lcom/fasterxml/jackson/databind/ObjectMapper;
在com.amazonaws.partitions.PartitionsLoader.(PartitionsLoader.java:54)[aws-java-sdk-core-1.11.113.jar:]
在com.amazonaws.regions.RegionMetadataFactory.create(RegionMetadataFactory.java:30)[aws-java-sdk-core-1.11.113.jar:]
在com.amazonaws.regions.RegionUtils.initialize(RegionUtils.java:64)[aws-java-sdk-core-1.11.113.jar:]
在com.amazonaws.regions.RegionUtils.getRegionMetadata(RegionUtils.java:52)[aws-java-sdk-core-1.11.113.jar:]
在com.amazonaws.regions.RegionUtils.getRegion(RegionUtils.java:105)[aws-java-sdk-core-1.11.113.jar:]
在com.amazonaws.regions.Region.getRegion(Region.java:43)[aws-java-sdk-core-1.11.113.jar:]

我如何避免代码使用这个特殊的jar并使其使用最新的jar。我使用gradle作为构建工具。

您使用maven吗?我以前使用joda时遇到过类似的问题,然后使用
标记解决了这个问题。
标记可以用来排除aws java sdk中的旧jackson。下面是解决这个问题的方法e:

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.11.113</version>
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.8</version>
    </dependency>

亚马逊网站
aws java sdk
1.11.113
com.fasterxml.jackson.core
杰克逊核心
com.fasterxml.jackson.core
杰克逊核心
2.8.8

你说的是哪一个jackson库?当前在2.8中(在开发中是prod/2.9)版本和aws sdk包括版本2.6.6。我正在使用aws JAVA sdk 1.11.113,它在内部命中jackson jar 4.1。这是异常的原因。1.11.113 pom.xml声明jackson 2.6.6版本:但是com.fasterxml.jackson.databind.ObjectMapper.class.getProtectionDomain().getCodeSource().getLocation()给出了2.4,这意味着内部仍在使用旧版本这是正确的想法,但并不能解决我的问题。如果你有其他想法,请发布..注意,我还为
jackson databind添加了排除,但也没有解决。