如何防止依赖编译重复依赖

时间:2016-01-26 14:21:44

标签: android gradle android-gradle

我在项目的lib文件夹中有一个ak形式的SDK。我试图将它作为依赖项添加到我的项目的build.gradle中。

INDEX SCAN

但是,当我尝试重建gradle时,我得到以下内容:

  dependencies {
      ...
      compile(name:'mySDK', ex:'aar')
      ...
  }

我解压缩Error:(48, 0) No such property: ex for class: org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency_Decorated. > java.util.zip.ZipException: duplicate entry: org/apache/http/impl/cookie/IgnoreSpecFactory.class 并确认mySDKhttpclient-android-4.3.5.1.jar中使用的库(此jar包含mySDK ...)。

然后我更新了我的gradle以尝试排除此库。

org.apache.http

我也尝试排除:

  dependencies {
      ...
      compile(name:'mySDK', ex:'aar'){
        exclude(group: 'org.apache.http', module: 'httpclient-android-4.3.5.1')
      }
      ...
  }

不幸的是,我仍然收到相同的exclude module: 'httpclient' exclude(group: 'org.apache.http', module: 'httpclient-android') exclude(group: 'org.apache.http', module: 'httpclient') 。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

使用aar fileflat repo

您不能

只有在使用maven依赖项时才能执行此操作。在这种情况下,您有一个描述依赖关系的pom文件(包含模块和组)。

在aar中没有任何pom文件描述jar文件是一个名为httpclient-android-4.3.5.1的依赖项。

通常,aar文件不包含依赖项。 最好的选择是在maven仓库中使用此aar以排除依赖关系 由于不可能,另一种方法是解压缩aar文件,删除jar依赖项并重新打包aar(这是一个简单的zip文件)。