技术栈

AS多个library库含有相同引用优化

2018-11-04  本文已影响0人  黄油伯伯

假设项目引用了类库 A 和类库 B ,同时,这两个类库都依赖包 C 。

  1. 如果 A 、B 、C 均为 Maven 依赖,可以直接使用,不会存在冲突问题。
    如果还是有问题,则在主项目可以去除 A 、B 中的 C 。
    主项目:
    compile 'a.group:a.artifactId:a.version' {
    exclude group: 'c.groupId', module: 'c.artifactId'
    }
    compile 'b.group:b.artifactId:b.version' {
    exclude group: 'c.groupId', module: 'c.artifactId'
    }
    compile 'c.groupId:c.artifactId:c.version'
  2. 如果 A 、B 均为 Maven 依赖,C 为 jar 依赖。则将 C 复制到主项目、A 、B 中,主项目 compile C ,A 、B provided C 。
    主项目: compile files('libs/C.jar')

A 、B 项目:provided files('libs/xx.jar')

  1. 如果 A 、B 均为 Library Project 依赖,C 为 jar 依赖。同 2 。
  2. 如果 A 、B 均为 Library Project 依赖,C 为 Maven 依赖。同 2 或者 1(Maven 依赖也可以进行 provided 处理)。
  3. 如果 A 为 Maven 依赖或者 Library Project 依赖,B 为 jar 依赖,C 为 jar 依赖。
    A 项目:provided files('libs/xx.jar')

B 项目和主项目,不做其他任何处理。

  1. 如果 A 、B 、C 均为 jar 依赖,尝试重新将 A 、B 打包,将 C 剥离出来。
上一篇下一篇

猜你喜欢

热点阅读