IDEA | Idea项目目录结构设定分析

IDEA |  Idea项目目录结构设定分析


author: Nathan_alzy
date: 2021-11-06-17:45


tags: #IDEA

Distribution: Local / cnblog

1、理解Idea目录设定需要掌握的概念

  • Module
  • Project
  • Content root

2、不同结构视图

  • 文件系统中项目视图
  • Idea中项目视图

案例1: 默认创建一个项目Project

S1: 退出当前项目,从Idea欢迎界面创建一个新的项目

S2: 点击【Projects】➞ 【New Project】

image-20211106175347904

S3: 设置项目名和路径

image-20211106175652813

Project name = Project_demo
Project location = D:ProjectsProject_demo
---
Module name = Project_demo
Content root = D:ProjectsProject_demo
Module file location = D:ProjectsProject_demo
Project format = .idea(directory based)

分析: 默认Project location是“某个磁盘位置+当前项目名(Project name)”,同时注意到下方的【More Settings】选项,模块名(Module name)也是当前项目名,内容根目录也是Project location,模块文件位置也是Project location

猜想: 创建一个项目(Project)”Project_demo”会同时创建一个默认的模块(Module),且这个模块名和项目名一致。储存位置也和项目名一致。

最后的结构是:

Project_demo
    │
    ├───.idea
    │
    │
    ├───src
    │
    │
    └───Project_demo.iml

在文件系统中的内容结构:

image-20211106182038350

Idea中项目内容:

image-20211106183231649

⚠️ 这里的「Project_demo」指示的不是项目名的「Project_demo」而是模块名的「Project_demo」,因为这里采用默认,则模块名和项目名相同。

S4: 查看项目设置(Project Setttings),【File】➞ 【Project structure】

image-20211106180717160

可以看到确是存在名为“Project_demo”的模块,即证明了在创建一个项目时同时创建了一个同名的模块。

案例2: 创建一个项目同时指定多个模块

为了更直观的认识「Project」和「Module」,这次创建项目同时指定Module名和储存路径,而不采用默认项目名和项目储存路径。

image-20211106181025652

猜想: 这样设置后,会在Proct_demo2下创建一个模块名为Module_demo,并且储存在D:ProjectsProject_demo2Module_demo下。

创建的项目目录结构:

Project_demo2
    │
    │
    ├───.idea
    │
    │
    └─┬─Module_demo
      │
      ├─── src
      │
      └────Module>demo.imi

文件系统中内容结构:

image-20211106182323371

在Idea中显示的结构:

image-20211106182541484

此时,指定Module储存位置和Project储存位置区分后,只显示模块名「Module_demo」

分析: 通过案例1和案例2可以区分「Project」和「Module」。

从生成内容上区分:

  • Project: 仅仅生成.idea文件
  • Module: 生成srcxxx.imi文件

情况1: 如果设置Project储存路径和Module路径一样,则.idea,src,xxx.imi会在同目录下。

情况2: 如果单独指定Module名,指定Module储存路径,则模块内容在单独目录下。

这也是为什么案例1中模块文件和项目文件混合起来

image-20211106182127475

案例3:创建项目指定module location

image-20211106184535925

文件树结构:

D:.
├─.idea
│  └─codeStyles
│    
├─ModuleName_demo3
└─Module_demo3
    └─src

分析: 说明content rootmodule并不是同一个概念。

Content root和Module file辨析

  • Content root: 表示储存模块的内容根目录,内容有src
  • Module file location: 模块的储存位置,内容有xxx.imi

总结:

Project只是一个范围的限制,用于限定若干模块,可以理解为一个文件夹,没有实质功能,真正的代码是编写在模块中,创建项目真正是创建模块。

image-20211106191616872

默认创建项目(不指定模块名,和储存位置),虽然在文件系统中是一个结构,以项目名为名的目录下有若干内容,但是在idea中查看结构,有明显的「project」和「Module」的配置之分。所以为了搞清楚当前项目结构以Idea界面中的配置为准。

1、对于不同概念(目录)产生的内容

  • Project: 生成.idea
  • Module: 生成xxx.imi
  • Content root: 生成src

2、对于模块名称和模块储存位置

  • 如果创建项目不显式指定模块名,则模块名和项目名相同
  • 如果不指定模块储存位置,则模块储存在项目根目录下,此时项目文件和模块文件混杂
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » IDEA | Idea项目目录结构设定分析