这种依赖性给了我一个jar的两个版本.我该如何解决?

use*_*572 6 java android jersey gradle maven

我正在使用Gradle作为我的项目.我在build.gradle中指定的依赖项之一是
compile 'org.glassfish.jersey.media:jersey-media-moxy:2.0'

这在普通的Java应用程序上工作正常,但是当我尝试在Android上构建它时,我得到:

当注视哪个库引用,很明显,有两个javax.inject-2.3.0-b05.jarjavax.inject-1.jar,我发现上面的依赖添加.我猜这个'重复'jar是造成构建错误的原因.

我该如何解决这个问题?为什么依赖包含两个相同的jar?有没有办法用这两个罐子制作Android版本或删除其中一个罐子?

Nie*_*sen 2

看来您有一个类似的依赖树

project
|--- org.glassfish.jersey.media:jersey-media-moxy:2.0
| \--- *:javax.inject:1
\--- *:javax.inject:2.3.0-b05
Run Code Online (Sandbox Code Playgroud)

其中 * 是组,我怀疑它可能与这两个组不同。

尝试使用依赖项任务了解如何获取依赖项

gradle dependency
Run Code Online (Sandbox Code Playgroud)

如果您需要排除依赖项,请在标签中输入它,类似于下面的示例

compile('org.hibernate:hibernate:3.1') {
  //excluding a particular transitive dependency:
  exclude module: 'cglib' //by artifact name
  exclude group: 'org.jmock' //by group
  exclude group: 'org.unwanted', module: 'iAmBuggy' //by both name and group
}
Run Code Online (Sandbox Code Playgroud)