【发布时间】:2018-03-14 07:43:23
【问题描述】:
在我的 maven 项目中,我需要使用 aws-java-sdk-athena,它具有 aws-java-sdk-core 作为依赖项。但是对于身份验证,我别无选择,只能使用提供的工件,该工件具有 aws-android-sdk-core 作为依赖项。问题是他们都有同名的 com.amazonaws.http.ExecutionContext 类。但是他们有不同的方法等等。
我尝试排除其中一个,但随后其中一个熄灭,这意味着这些类已被使用。我现在非常沮丧,因为几乎不可能重新打包这些工件之一来更改其中的包名称。
<dependencies>
<!-- This dependency requires aws-java-sdk-core 1.11.292 -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-athena</artifactId>
<version>1.11.292</version>
</dependency>
<!-- This dependency requires aws-android-sdk-core 2.6.16 -->
<dependency>
<groupId>work.commons</groupId>
<artifactId>work-commons-authentication</artifactId>
<version>${authz.version}</version>
</dependency>
<dependencies>
<repositories>
<repository>
<id>in.house</id>
<name>nexus</name>
<url>http://work.name.com/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
在运行时,我得到了那个异常:
org.springframework.web.util.NestedServletException:处理程序调度失败;嵌套异常是 java.lang.NoSuchMethodError: com.amazonaws.http.ExecutionContext.setContextUserAgent(Ljava/lang/String;)
因为 java-sdk 和 android-sdk 都有确切的类 com.amazonaws.http.ExecutionContext 但 java-sdk 中的类没有 setContextUserAgent 方法。如果我更改依赖关系的顺序,Athena 连接函数就会中断。
【问题讨论】:
-
你是在寻求同情吗?如果你要求别的东西,你需要具体。而且我们可能需要更多细节:工件名称和版本号,您是否在 android 上运行,等等。
-
@ErwinBolwidt 抱歉问得不清楚,我已经更新了 pom.xml 部分和我得到的异常以获取更多详细信息。如果你能看看就好了