基于AS开发项目,对于特定的功能模块,往往抽取成独立的库进行管理,然后上传到Marven库中,通过Gradle依赖的方式进行引用。
其优势体现在:
1,独立的Git项目库,模块功能,及职责界定清晰;
2,外部使用方一般无须关注此Git项目库的具体实现和逻辑细节,只需按照对应的对外暴露的方式调用即可;
3,一般此类Git项目库有专门的管理员,和技术人员实现其功能的迭代和维护更新,以及对应的版本管理;
4,使用方只是通过Gradle引用, 此Git项目库在安全性上有进一步保障。
但在实际开发中,有时候需要对此Git项目库进行修改,对应需要和主工程进行联调测试等,此时如果每次修改此Git项目库代码后,更新到Marven库,然后再在主工程
更新对应的marven版本依赖,无论是实现过程,还是实际调试等,都过于繁琐。
Gradle提供了特定的语法结构,可以在调试时直接类似于引入此项目其他模块的方式引入此类独立Git库。
具体语法结构为:
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项目库代码是同一份)。