一、前提
在项目中,如果某个模块被多个项目使用,那通常的做法是把这个模块编译成aar,然后通过maven仓库依赖。如果此时这个模块在A项目中出现一个bug。做法有:
- 修改模块工程上的源码,然后生产aar,再让A项目去依赖,但如果出现的bug并不具有同性,只是出现在A项目中,这时候就需要在模块工程里模拟A项目的场景,使问题能在模块工程上出现,然后修复。
2. 把模块工程源码拷贝到A项目里,直接依赖,找到问题后,把修改点同步到模块工程里。
那么会不会有方法,既能在A项目里直接定位问题,又不用拷贝源码呢? 当然有,那就是依赖本地地址模块
二、实现
在A项目根目录下的setting.gradle文件中添加对目标模块的加载,直接上代码:
loadLocalModule("D:\MyAndroidProjects\launcher-immersed\Module-Music")
// 加载本地地址模块
def loadLocalModule(projectPath) {
File file = file(projectPath)
System.out.print("build " + file.name + "\n")
include ":" + file.name
project(":" + file.name).projectDir = file
}
添加这段代码后,Module-Music模块就被依赖到XgimiMusic项目中了
需要注意:
模块build.gradle文件中如果有使用到根目录中的一些依赖,需要把对应的依赖注释掉,或者把对应依赖拷一份到A项目中,否则项目运行不起来