androidStudio 多项目依赖同一个module

来源:互联网 发布:航天远景软件 编辑:程序博客网 时间:2024/06/06 04:02

我们都知道,androidStudio(后面简称AS)在导入一个外部的本地module时,AS采用的是复制一份到当前项目目录下这种策略。这种方式在开发一个项目时并不会有什么大问题,不过,在多个项目都引用同一个或几个module时就会出现大问题,这种公用的module通常都是框架类或工具类module,如果每个项目都复制一份module到自己项目目录下,如果某天发现module中有几个bug需要修改,你就会发现,你不得不去每个目录下修改module,如果是修改的东西比较多的话,绝对是欲哭无泪。

上述就是研究多项目依赖同一个module这个问题的起因,下面直接说说怎么解决(目前官方似乎没有直接支持的方法,不过我相信以后肯定会支持),首先为了方便维护,我们新建一个项目,这个项目下只有公用的module,不放任何application

然后只需要在其他引用这些module的工程settings.gradle中添加如下配置


这样,我们就可以像之前那样使用本地依赖的方法直接在当前项目的application中添加这些module依赖了


原理其实也非常简单,就是我们强制添加并修改了引入module和module的路径,完成配置并clean后目录变成如下结构


Driver目录就是项目工程目录,可以发现,配置后,Driver下项目引用的几个module都被成功引入,只不过和之前直接导入module不同,他们不再是在Driver目录下了,而是和Driver平级,当然,这并不会影响引用。

注意点:这些看上去和Driver平级的几个module,其实在真实的文件目录下是不存在的,也就是说你直接进入硬盘查看文件是没有这几个目录的,只有在AS中才能看到,这些module的真实目录就是他们自己所在的lirary项目目录,这样就保证了多个项目同步使用一个module。配置settings.gradle中module的File的路径时需要注意,里面应该填写的是module的真实目录,因为我的module根目录和项目是在同一个工作空间的,如果你的module的根目录和项目不再同级目录,则应该做出对应修改。

补充:发现一个额外问题,这样配置后,如果你的公用library是上传了git的话,你的项目如果没有配置git,然后你配置git时会发现怎么提交都是显示的上传library到git,这时只需要自己手动新建一个仓库就可以了


这样我们就可以像提交正常项目一样了

2 0
原创粉丝点击