基于AS开发项目,对于特定的功能模块,每每抽取成独立的库进行管理,而后上传到Marven库中,经过Gradle依赖的方式进行引用。api
其优点体如今:安全
1,独立的Git项目库,模块功能,及职责界定清晰;测试
2,外部使用方通常无须关注此Git项目库的具体实现和逻辑细节,只需按照对应的对外暴露的方式调用便可;gradle
3,通常此类Git项目库有专门的管理员,和技术人员实现其功能的迭代和维护更新,以及对应的版本管理;ui
4,使用方只是经过Gradle引用, 此Git项目库在安全性上有进一步保障。调试
但在实际开发中,有时候须要对此Git项目库进行修改,对应须要和主工程进行联调测试等,此时若是每次修改此Git项目库代码后,更新到Marven库,而后再在主工程code
更新对应的marven版本依赖,不管是实现过程,仍是实际调试等,都过于繁琐。blog
Gradle提供了特定的语法结构,能够在调试时直接相似于引入此项目其余模块的方式引入此类独立Git库。ci
具体语法结构为:开发
settings.gradle文件:
include ':cornlog'
project(':cornlog').projectDir = new File('../CornLogSDK/cornlogsdk')
主工程build.gradle文件:
dependencies { ...... api(project(':cornlog')) { exclude group: 'com.abc.mlog', module: 'mlog' } ....... }
sync后,能够发现此独立Git项目库会出如今当前主工程左侧项目导航视图中,能够直接修改、编译、调试等。相似于主工程项目内其余独立模块效果。
但Git commit等,仍然是分开的,当前主工程的Git提交依然只对主工程有效,须要提交此独立Git项目库须要到其独立Git本地工程中提交便可(代码与主工程视图中修改此独立Git项目库代码是同一份)。