IDEA中Project 和 Module的区别
Posted lcpp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA中Project 和 Module的区别相关的知识,希望对你有一定的参考价值。
IDEA中Project 和 Module的区别
1、IntelliJ IDEA 官方对于Project和Module的定义如下:
(1)Project:
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.
大致意思:
项目是您在IntelliJ IDEA中开发工作的顶级组织单元。在其完成的形式中,一个项目可以代表一个完整的软件解决方案。
一个项目是一个集合:
您的工作结果:源代码、构建脚本、配置文件、文档、工件等。
用于开发、编译、运行和测试代码的sdk和库。
表示项目上下文中工作首选项的项目设置。
(2)Module
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.
大致意思:
模块是项目的一部分,可以独立编译、运行、测试和调试。
模块是在维护公共(项目)配置的同时减少大型项目复杂性的一种方法。
模块是可重用的:如果需要,一个模块可以包含在多个项目中。
2、在此处我并不想深入讲什么IDEA中的Project相当于Eclipse中的 Workspace,Module 相当于Eclipse系中的 Project 之类的话,因为有些小伙伴可能没有用过Eclipse,或者说对Eclipse中的各级文件系统并不是很了解。
细品官方定义就能明白:
? (1)、在IntelliJ IDEA中Project是最顶级的结构单元,一个Project是由一个或者多个Module组成。一些主流大型项目结构基本上都是由多个Module的结构组成。
? (2)、主流大型项目一般都是按功能进行划分的,如:user-login-module(用户登录模块)、user-role-module(用户角色模块)、user-permission-module(用户权限模块)等,模块之间彼此相互依赖。通过这些Module的命名可以看出,它们都处于同一个项目中的模块,彼此之间有着不可分割的业务关系。
? (3)在一般情况下,IntelliJ IDEA是默认单Project单Module的,这使Project和Module合二为一,在没有修改存储路径的前提下,显然Project对Module具有强约束作用。
3、总结:
(1)、IDEA中的Project可以被理解成当前工作空间,而每一个Module就是这个工作空间里的工作项目。Project既是最顶层的结构单元——起了目录的作用,也是最底层的工作环境——各个Module在上面工作。
(2)、一个Project中可以定义多个Module,Project与各个Module之间属于父子关系,各个Module之间则属于兄弟关系
以上是关于IDEA中Project 和 Module的区别的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 中 Project 和 Module 的概念及区别
IntelliJ IDEA 中 Project 和 Module 的概念及区别
intellij idea 中project structure 配置 的Artifacts配置 Webapplication:exploded 和 archive区别