在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了ProjectModule这两个概念。接下来,就让咱们一起看看 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 是默认单ProjectModule的,这时ProjectModule合二为一,在没有修改存储路径的时候,显然ProjectModule具有强约束作用啦!不过说实话,这里就是将Module的内容放在了Project的目录下,实际上还是Module自己约束自己。

  • 标注1:Project name,项目名称;
  • 标注2:Project location,项目存储地址;
  • 标注3:Module name,模块名称;
  • 标注4:Module file location,模块存储地址。

如上图所示,通过观察ProjectModule的存储地址,咱们可以发现,在此处建立了一个名为user-core-module的目录,并将其放在了名为user-modules-project的目录下,而没有将两个目录合二为一,也就为咱们建立多ModuleProject作了准备。

如上图所示,显然user-modules-project仅表现为一个目录而已。

如上图所示,依次点击File–>New–>Module,进入如下界面:

如上图所示,输入Module name之后,Content rootModule file location自动发生改变,然后点击finish,完成:

如上图所示,咱们在项目user-modules-project中,建立了两个Module,分别为user-core-moduleuser-hessian-module,接下来,咱们再看看存储目录:

如上图所示,显然在user-modules-project目录中,又多了一个名为user-hessian-module的目录。至此,多ModuleProject构建完成!

转载自:https://blog.csdn.net/qq_35246620/article/details/65448689

十、IntelliJ IDEA 中 Project 和 Module 的概念及区别的更多相关文章

  1. 【转】 IntelliJ IDEA 中 Project 和 Module 的概念及区别

    原文地址:https://blog.csdn.net/qq_35246620/article/details/65448689 在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间 ...

  2. IntelliJ IDEA 的 project 和 module 区别与关系

    在IDEA 创建一个project,目录结构是这样的:在project下创建一个module之后目录结构是这样的: 简单的概括如下: IntelliJ系中的 Project  相当于Eclipse系中 ...

  3. Android中Project、Module的区别

    Project 可以包含多含 Module. Project相当于eclipse里面的工作区间,module相当于其project.module可以作为狭义上的模块,可以多个app共用的module. ...

  4. Linux中进程与线程的概念以及区别

    linux进程与线程的区别,早已成为IT界经常讨论但热度不减的话题.无论你是初级程序员,还是资深专家,都应该考虑过这个问题,只是层次角度不同罢了.对于一般的程序员,搞清楚二者的概念并在工作中学会运用是 ...

  5. js中BOM与DOM的概念与区别

    1.BOM 浏览器对象模型 提供了独立于内容而与浏览器窗口进行交互的对象.描述了与浏览器进行交互的方法和接口,可以对浏览器窗口进行访问和操作,譬如可以弹出新的窗口,改变状态栏中的文本,对Cookie的 ...

  6. 浅析php中抽象类和接口的概念以及区别[转]

    //抽象类的定义: abstract class ku{ //定义一个抽象类 abstract function kx(); ...... } function aa extends ku{ //实现 ...

  7. 13-Linux中进程与线程的概念以及区别

    linux进程与线程的区别,早已成为IT界经常讨论但热度不减的话题.无论你是初级程序员,还是资深专家,都应该考虑过这个问题,只是层次角度不同罢了.对于一般的程序员,搞清楚二者的概念并在工作中学会运用是 ...

  8. php中抽象类与接口的概念以及区别

    php里面的接口类,抽象类到底有什么用呢? 刚接触php的时候,觉得这个东西没什么用,其实这些东西还是有一定的作用的,下面我就简单的说说. 1.php 接口类:interface 其实他们的作用很简单 ...

  9. Project和Module的介绍

    Project 和 Module 介绍 这两个概念是 IntelliJ IDEA 的必懂知识点之一,请务必要学会. 如果你是 Eclipse 用户,并且已经看了上面给的链接,那 IntelliJ ID ...

随机推荐

  1. Windows 10 搭建Hadoop平台

    一.环境配置 JDK:1.8. Hadoop下载地址(我选择的是2.7.6版本):https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ ...

  2. [android] 练习viewpagerindicator的使用(二)

    主要还是想实现滑动的tab切换效果 MainActivity.java package com.example.csdn; import com.viewpagerindicator.TabPageI ...

  3. CentOS Linux 7.3 1611 (Core) 配置静态IP地址

    详见: http://blog.csdn.net/johnnycode/article/details/50184073 设置静态IP 关于静态IP设置官方已经给出答案有兴趣的可以看官方WIKI指导, ...

  4. TCP基础知识(三)重传、流量控制、拥塞控制

    TCP详解(3):重传.流量控制.拥塞控制…… 数据传输 在TCP的数据传送状态,很多重要的机制保证了TCP的可靠性和强壮性.它们包括:使用序号,对收到的TCP报文段进行排序以及检测重复的数据:使用校 ...

  5. ExceptionHelper异常工具类

    using System;using System.Collections.Generic;using System.Text; namespace JiaWel.Utilities{ public ...

  6. LeetCode Find Peak Element [TBD]

    说要写成对数时间复杂度,算了想不出来,写个O(n)的水了 class Solution { public: int findPeakElement(const vector<int> &a ...

  7. SQL COUNT DISTINCT

    Create table trade ( sell_id int,  --卖家 buy_id int, -- 卖家 time date --交易时间 ) sell_id, buy_id, time s ...

  8. Grunt完整打包一个项目实例

    Grunt确实好用,配置好Gruntfile.js之后,一个命令就行云如流水,程序帮你搞定一切,爽歪歪. 我们先看压缩前的目录: 再看打包后的目录: build是打包后的文件夹,main.css是压缩 ...

  9. 合并excel的多个sheet

    '合并excel的多个sheetSub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.Count If S ...

  10. javascript多浏览器的兼容

    一.document.formName.item(”itemName”) 问题 问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document. ...