IntelliJ IDEA 中 Project 和 Module 的概念及区别
在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project
和Module
这两个概念。接下来,就让咱们一起看看 IntelliJ IDEA 官方是如何描述两者的吧!
对于 Project,IntelliJ IDEA 官方是这样介绍的:
A project is a top-level organizational unit for your development work in IntelliJ IDEA. In its finished form, a project may represent a complete software solution. A project is a collection of:
- Your work results: source code, build scripts, configuration files, documentation, artifacts, etc.
- SDKs and libraries that you use to develop, compile, run and test your code.
- Project settings that represent your working preferences in the context of a project.
A project has one or more modules as its parts.
对于 Module,IntelliJ IDEA 官方是这样介绍的:
- A module is a part of a project that you can compile, run, test and debug independently.
- Modules are a way to reduce complexity of large projects while maintaining a common (project) configuration.
- Modules are reusable: if necessary, a module can be included in more than one project.
通过上面的介绍,咱们知道,在 IntelliJ IDEA 中Project
是最顶级的结构单元,然后就是Module
,一个Project
可以有多个Module
。目前,主流的大型项目结构基本都是多Module
的结构,这类项目一般是按功能划分的,比如:user-core-module、user-facade-module 和 user-hessian-module 等等,模块之间彼此可以相互依赖。通过这些Module
的命名可以看出,她们都是处于同一个项目中的模块,彼此之间是有着不可分割的业务关系的。
因此,咱们可以大致总结出:一个Project
是由一个或多个Module
组成,尽量让各模块处于同一项目之中,此时彼此之间具有互相依赖的关联关系。在这里,之所以说“尽量”,是因为 IntelliJ IDEA 的Project
是一个没有具备任何编码设置、构建等开发功能的,主要起到一个项目定义、范围约束、规范类型的效果,或许,咱们也可以简单地理解Project
就是一个单纯的目录,只是这个目录在命名上必须有其代表性的意义。在一般情况下,IntelliJ IDEA 是默认单Project
单Module
的,这时Project
和Module
合二为一,在没有修改存储路径的时候,显然Project
对Module
具有强约束作用啦!不过说实话,这里就是将Module
的内容放在了Project
的目录下,实际上还是Module
自己约束自己。
- 标注1:Project name,项目名称;
- 标注2:Project location,项目存储地址;
- 标注3:Module name,模块名称;
- 标注4:Module file location,模块存储地址。
如上图所示,通过观察Project
和Module
的存储地址,咱们可以发现,在此处建立了一个名为user-core-module
的目录,并将其放在了名为user-modules-project
的目录下,而没有将两个目录合二为一,也就为咱们建立多Module
的Project
作了准备。
如上图所示,显然user-modules-project
仅表现为一个目录而已。
如上图所示,依次点击File
–>New
–>Module
,进入如下界面:
如上图所示,输入Module name
之后,Content root
和Module file location
自动发生改变,然后点击finish
,完成:
如上图所示,咱们在项目user-modules-project
中,建立了两个Module
,分别为user-core-module
和user-hessian-module
,接下来,咱们再看看存储目录:
如上图所示,显然在user-modules-project
目录中,又多了一个名为user-hessian-module
的目录。至此,多Module
的Project
构建完成!
- c++中类长度解析
- 剑指OFFER之丑数(九度OJ1214)
- 剑指OFFER之把数组排成最小的数(九度OJ1504)
- 剑指OFFER之从1到n中出现1的次数(九度OJ1373)
- 剑指OFFER之最大子向量和(连续子数组的最大和)(九度OJ1372)
- 剑指OFFER之最小的K个数(九度OJ1371)
- 剑指OFFER之数组中出现次数超过一半的数字(九度OJ1370)
- 如何成为一名10x的数据分析师?
- 肥料生产商全套三拼在手:拟融资1.47亿元
- 《外媒Cointelegraph专访Qtum量子链Jordan Earls》—浅谈目前Dapps的主要问题
- ASP .Net Core 2.0 修改默认端口
- 不满一岁的潜力股:2017年3D打印机器人盘点
- Reporting Service报表开发
- 不要信任云:这不只是安全的问题
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- CentOS 8 安装 MariaDB的详细教程
- Android中RecyclerView拖拽、侧删功能的实现代码
- Android单个RecyclerView实现列表嵌套的效果
- Android如何禁止向EditText控件中输入内容详解
- 小程序视角下同构方案思考
- Android基于自带的DownloadManager实现下载功能示例
- Linux服务器搭建nvidia-docker环境过程详解
- Android开发中libs和jinLibs文件夹的作用详解
- Android多线程之同步锁的使用
- android.graphics.Matrix类用法分析
- 使用VSCode和SSH进行远程开发
- Android利用CountDownTimer实现倒计时功能 Android实现停留5s跳转到登录页面
- Android开发之对话框案例详解(五种对话框)
- Linux下一只五颜六色的「猫」
- Android编程实现自定义ImageView圆图功能的方法