• 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之间则属于兄弟关系

  • 相关阅读:
    Mono和IL2Cpp
    axios无法获取响应头headers的ContentDisposition
    elcascader(联机选择器)动态加载+编辑默认值回显
    Vue ElTree 拖拽排序方法(通用)
    Postman保存token并使用token的整个流程
    python 使用exec执行定义好的方法,提示“name 'XXX' is not defined”
    Python+flask+flaskapscheduer实现定时下发任务
    androidtools下的uiautomatorviewer截图,提示“Unexpected error while obtaining UI hierarchy”
    python 插入mysql数据库字符串中含有单引号或双引号报错
    python 根据传进来的参数,动态拼接sql
  • 原文地址:https://www.cnblogs.com/lcpp/p/13189494.html
Copyright © 2020-2023  润新知