gradle包重名
来源:互联网 发布:linux下创建文件夹 编辑:程序博客网 时间:2024/04/29 12:58
gradle使用高版本出现包重复,具体原因合解决办法如下:
compile fileTree(dir: 'libs', include: '*.jar', exclude : ['baseLibrary-monolithic-[BaseLibrary-hw-1.2.0]-[394].original.jar', 'android-support-v4.jar’])———去重包(会一直报错,跟着错误就知道哪个包是重复的了) compile project(':submodules:DXToolboxLib’)———这里括号中的为被依赖的子模块
包依赖关系的6中不同方式(简单了解):http://www.cnblogs.com/kangyi/p/4449857.html
1原因:
项目中依赖很多子模块,子模块是都是另一个团队,甚至是另个部门的团队来维护,他们会有自己的包依赖关系(因为子模块也会供给很多团队使用,所以不能随便删包),这样当主线中引用很多其他子模块的时候就出现了复杂的依赖(子模块之间也会有依赖),当gradle在1.3的时候,在编译的时候会merge重复的代码(类似去重),但是当使用高版本的时候会出现包重复的问题,编译不通过。
2:解决办法:
一般dependencies 都会有这样一句代码:compile fileTree(dir: 'libs', include: '*.jar')——这句话是说我要仓库中所有的代码,这个时候需要去重子模块的重复的包 compile fileTree(dir: 'libs', include: '*.jar', exclude : 'baseLibrary-monolithic-[BaseLibrary-hw-1.2.0]-[394].original.jar')———exclude的意思就是去除,如果有多个包则[.jar,.jar]类似数组,逗号分割,但是这样会导致子模块编译不通过,这个时候就要 provided files('libs/baseLibrary-monolithic-[BaseLibrary-hw-1.2.0]-[394].original.jar’)——参与编译,但是不打到最终的jar,这样就达到的去重(子模块可以编译,主线可以打包)
3:关于子模块之间的依赖去重compile fileTree(dir: 'libs', include: '*.jar', exclude : ['baseLibrary-monolithic-[BaseLibrary-hw-1.2.0]-[394].original.jar', 'android-support-v4.jar’])———去重包(会一直报错,跟着错误就知道哪个包是重复的了) compile project(':submodules:DXToolboxLib’)———这里括号中的为被依赖的子模块
包依赖关系的6中不同方式(简单了解):http://www.cnblogs.com/kangyi/p/4449857.html
0 0
- gradle包重名
- 依赖包出现类重名问题
- Android监听器重名时,要写成带包的全名
- Object(equals,finalize,clone,hashCode,toString),与包的重名
- Gradle添加support包
- gradle打Zip包
- andoird gradle 渠道包
- gradle离线安装包
- gradle加速下载jar包 标签: gradle
- 使用gradle打包jar包
- gradle 打可执行jar包
- 用Gradle打jar包
- Android Gradle打渠道包
- 使用gradle下载依赖包
- Nexus -- Gradle包依赖管理工具
- gradle离线包下载更新
- 使用gradle编译jar包
- Gradle加载本地jar包
- VS2010 动态库没有生产LIB
- VS2010 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 用shell脚本生成文本文件
- JavaScript学习笔记一 - 基本语法,数据类型、变量
- VS2010 Windows制作DLL
- gradle包重名
- ztree系列一 需求分析
- VS2010 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它
- VS2010 查看DLL接口
- 安全加密算法与数据签名总结(2)
- mysql 相关问题
- VS2010 运行时找不到DLL
- PHP学习笔记十一之文件系统(进阶篇)
- 面向对象的C写法