顿时倍感清晰,有木有?但此时,项目是不能直接构建成功的。
2.2 修正模块引用配置
Module目录结构已经发生了变化,对应需要此Module的配置,也是需要去修正的。以工程settings.gradle文件为例,初始,对应配置如下:
include ‘:App’, ‘:News’, ‘:Videos’, ‘:Message’, ‘:Comments’, ‘:Pictures’, ‘:Personal’, ‘:Base’, ‘:LoginReg’, ‘:ActAd’, ‘:Main’
include ‘:Dev’, ‘:Eguan’
include ‘:Main_App’, ‘:News_App’, ‘:ActAd_App’, ‘:Message_App’, ‘:Comments_App’, ‘:LoginReg_App’, ‘:Personal_App’, ‘:Pictures_App’, ‘:Videos_App’
每个模块名称前面有个:,表示的是相对于当前主工程的根目录。现在部分模块的目录路径变化了,对应修正如下:
include ‘:App’, ‘:News’, ‘:Videos’, ‘:Message’, ‘:Comments’, ‘:Pictures’, ‘:Personal’, ‘:Base’, ‘:LoginReg’, ‘:ActAd’, ‘:Main’
include ‘:Extends:Dev’, ‘:Extends:Eguan’
include ‘:Module_App:Main_App’, ‘:Module_App:News_App’, ‘:Module_App:ActAd_App’, ‘:Module_App:Message_App’, ‘:Module_App:Comments_App’, ‘:Module_App:LoginReg_App’, ‘:Module_App:Personal_App’, ‘:Module_App:Pictures_App’, ‘:Module_App:Videos_App’
同样的,如果其他模块对Module路径变化了的模块有依赖,对应也需要修正。如Main模块依赖Dev模块,初始配置如下:
devImplementation project(‘:Dev’)
现在,需要修正如下:
devImplementation project(‘:Extends:Dev’)
全部修正完成,我们重新构建项目,发现项目.idea目录下的modules.xml配置文件已自动更新了。
同时,Extens和Module_App目录自身,也自动生成了对应的.iml文件。
同时,具体模块下,iml模块配置也自动进行了修正。
此时,构建成功。PS:如果实际项目在更改成Module分组,并修改完配置后,仍然构建有不成功,可以尝试如下步骤:
1,gradlew清除缓存:
./gradlew clean
2,AS清除缓存:
File >> Invalidate Caches / Restart >> Invalidate And Restart
3,删除主工程根目录下的缓存文件:
直接删除.idea目录,重启AS,会自动重新生成
三、结语
复杂的项目中,往往具有复杂的模块划分。依据不同的模块职责,将其归纳到不同的Module分组中,使得平时项目开发时,有更好的清晰的视图结构,可以将注意力更多的专注于项目真正模块主体的开发。模块目录结构的改变,实际上只是相对于项目根目录的路径发生了变化。对应的,我们只需要修正对应的引入到此模块的配置即可(往往都是对应的.gralde文件),其他都没有任何变化。在实际项目开发中,依据实际情况,适当通过Module分组方式,可以获得更加清晰的项目视图结构。