接触另外一个团队开发的团队的代码,用 Android Studio 打开后突然发现 Project 视图,怎么有两个相同的根目录 “文件夹”?真是活久见,奇怪的知识又增加了...
现象
相同名字
解释
这两个“文件夹”的意义不一样
-
上面一个是项目的 Modules 视图,“文件夹”的名字是通过
settings.gradle
的rootProject.name = 'TestProject'
指定的,
project name 下面的是项目的真实的文件夹目录结构(当然显示与否和显示的样式可以通过图的右上角设置,并且受到
.gitignore
文件夹影响)
复现
创建一个项目TestProject
,并在项目里创建一个模块testlibrary
,然后把模块的文件夹拷贝到项目目录外的目录(比如跟项目目录同级),然后修改setting.gradle
把项目目录外的模块导入到项目中
rootProject.name = 'Alibaba'
include ':app', ':testlibrary'
// 引入其它目录的模块
include ':testlibrary1' // 导入模块
project(':testlibrary1').projectDir = new File('../testlibrary') // 指定导入模块的路径,默认是项目的根目录
思考
如果导入了其它目录的模块代码,就不受当前项目的 git 版本管理,并且存在变动,在新的PC上导入项目时,需要准备一套正确的目录结构和环境。
所以,如果是通过Android Studio项目的模块导入 File - New - import module
的操作导入,则会把模块的目录拷贝到项目目录下,方便代码管理。