您的位置:58编程 > idea的project和module IDEA Project 和 Module 介绍

idea的project和module IDEA Project 和 Module 介绍

2023-04-25 17:33

idea的project和module IDEA Project 和 Module 介绍

idea的project和module IDEA Project 和 Module 介绍

idea的project和module

这两个概念是 IntelliJ IDEA 的必懂知识点之一,请务必要学会。

如果你是 Eclipse 用户,并且已经看了上面给的链接,那 IntelliJ IDEA 首先告诉你一个非常重要的事情:IntelliJ IDEA 没有类似 Eclipse 工作空间(​workspace​)的概念的。很多从 Eclipse 转过来的人总是下意识地要再同一个窗口管理 n 个项目,这在 IntelliJ IDEA 是无法得到。IntelliJ IDEA 提供的体验是:一个 Project 打开一个 Window 窗口。

对于 Project,IntelliJ IDEA 是这样解释的:

  • Whatever you do in IntelliJ IDEA, you do that in the context of a project. A project is an organizational unit that represents a complete software solution. It serves as a basis for coding assistance, bulk refactoring, coding style consistency, etc.
  • Your finished product may be decomposed into a series of discrete, isolated modules, but it"s a project definition that brings them together and ties them into a greater whole.
  • Projects don"t themselves contain development artifacts such as source code, build scripts, or documentation. They are the highest level of organization in the IDE, and they define project-wide settings as well as collections of what IntelliJ IDEA refers to as modules and libraries. 
  • 20170630 更新新地址:https://www.jetbrains.com/help/idea/about-projects.html
  • 对于 Module,IntelliJ IDEA 是这样解释的:

  • A module is a discrete unit of functionality which you can compile, run, test and debug independently.
  • Modules contain everything that is required for their specific tasks: source code, build scripts, unit tests, deployment descriptors, and documentation. However, modules exist and are functional only in the context of a project.
  • Configuration information for a module is stored in a .iml module file. By default, such a file is located in the module"s content root folder.Development teams, normally, share the .iml module files through version control.
  • 20170630 更新新地址:https://www.jetbrains.com/help/idea/about-modules.html?search=About
  • 通过上面的介绍我们知道,在 IntelliJ IDEA 中 ​Project ​是最顶级的级别,次级别是 ​Module​。一个 ​Project ​可以有多个 ​Module​。目前主流的大型项目结构都是类似这种多 ​Module ​结构,这类项目一般是这样划分的,比如:​core Module​、​web Module​、​plugin Module​、​solr Module​ 等等,模块之间彼此可以相互依赖。通过这些 ​Module​ 的命名也可以看出,他们之间应该都是处于同一个项目业务情况下的模块,彼此之间是有不可分割的业务关系的。

    所以我们现在总结:一个 ​Project​ 是由一个或多个 ​Module​ 组成,模块之间尽量是处在同一个项目业务的的情况下,彼此之间互相依赖关联。这里用的是 尽量,因为 IntelliJ IDEA 的 ​Project ​是一个没有具备任何编码设置、构建等开发功能的,主要起到一个项目定义、范围约束、规范等类型的效果,也许我们可以简单地理解为就是一个单纯的目录,只是这个目录命名上必须有其代表性的意义。

    下面我们以著名的 ​spring-framework​ 项目为例介绍多 ​Module ​的结构的:

    • 项目主页:https://github.com/spring-projects/spring-framework
    • 该项目的 ​Project ​命名是:spring-​framework​。该目录主要作用为各个 ​Module​ 的顶层目录进行约束,告诉协同者,这个目录下都是 ​spring-framework​ 相关的,我绝不会放 Android 相关源码、文档、文件在上面的。该目录并不是以一个实际性的目录来体现的,所以你访问主页是看不到的,但是当你 ​checkout​ 的时候,你必须为这个项目命名,至于命名默认就是 ​spring-framework​。
    • 该 ​Project​ 下有二十来个 ​Module​,各个 ​Module ​的命名也是有含义的,比如:​spring-core​、​spring-jdbc​、​spring-jms​、​spring-orm​、​spring-web​、​spring-webmvc​ 等等,我们通过这些命名也能清楚地知道他们要表达的含义,这些 ​Module ​下也都各自有 ​src​ 编码目录,可以自行编码和构建。

    Project 和 Module 介绍

    • 相比较于多 ​Module ​项目,小项目就无需搞得这么复杂。只有一个 ​Module ​的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单 ​Module ​的结构的。
    • 如上图 Gif 图演示,在输入 ​Project name ​的时候,​Module name​ 和 ​Module file Location ​自动进行改变,同时 ​Project location​ 和 ​Module file Location​ 完全一样,这也就表示,​Project ​目录和 ​Module ​ 目录是同一个,所以此时 ​Project ​目录下就会有 ​src​ 目录,但是我们应该明白其本质还是 ​Module ​的目录。

    关于 IntelliJ IDEA 的 ​Project ​和 ​Module​ 终于解释清楚了,但是由于 IntelliJ IDEA 官网上又有一段话对此解释得不够好,特别是对 Eclipse 用户来讲:https://www.jetbrains.com/idea/help/eclipse-faq.html,其中有这样两句话:

    • An Eclipse workspace is similar to a project in IntelliJ IDEA
    • An Eclipse project maps to a module in IntelliJ IDEA

    你可以把 IntelliJ IDEA 的 ​Project ​当做 ​workspace ​使用,IntelliJ IDEA 也是支持的,但是就像我们前面解释的那么那么多,这样是非常不符合其初衷的,所以请别把这段话当做教义去学习。对此 zeroturnaround 的大牛也有针对此进行了说明:https://www.jrebel.com/blog/intellij-idea-tutorial


    阅读全文
    以上是58编程为你收集整理的idea的project和module IDEA Project 和 Module 介绍全部内容。
    声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
    相关文章
    • idea配置git并获取远程仓库 IDEA 配置Git

      idea配置git并获取远程仓库 IDEA 配置Git

      要在 IntelliJ IDEA 中使用 ​Git​,需要先安装 ​Git ​客户端,这里推荐安装官网版本。​Git ​主要的版本有 ​1.X​、​2.X...

    •  IDEA 设置Postfix Completion

      IDEA 设置Postfix Completion

      Postfix Completion 的设置如上图红圈所示,IntelliJ IDEA 只提供了是否启用的开关,其他的设置就没了。所以如果目前的版本中你...

    • idea停止tomcat服务器 IDEA 停止Tomcat

      idea停止tomcat服务器 IDEA 停止Tomcat

      Tomcat 停止如上图所示,停止按钮是要按两次,第一按完出现一个骷髅头并不是停止,需要再点击一次。有时候即使点了两次,Tomcat ...

    • eclipse创建java项目不显示 Eclipse 创建 Java 项目

      eclipse创建java项目不显示 Eclipse 创建 Java 项目

      Eclipse 创建 Java 项目打开新建 Java 项目向导通过新建 Java 项目向导可以很容易的创建 Java 项目。打开向导的途径有:通过点击...

    • eclipse快捷键补全代码 Eclipse 快捷键

      eclipse快捷键补全代码 Eclipse 快捷键

      Eclipse 快捷键关于快捷键Eclipse 的很多操作都提供了快捷键功能,我们可以通过键盘就能很好的控制 Eclipse 各个功能:使用快捷...

    •  PostgreSQL 位串类型

      PostgreSQL 位串类型

      位串就是一串 1 和 0 的串。它们可以用于存储和可视化位掩码。我们有两种类型的 SQL 位类型:bit(n)和bit varying(n),其中 n是...

    •  PostgreSQL DROP VIEW

      PostgreSQL DROP VIEW

      DROP VIEW — 移除一个视图大纲DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]描述 DROP VIEW删除一个现有的视图...

    •  PostgreSQL REFRESH MATERIALIZED VIEW

      PostgreSQL REFRESH MATERIALIZED VIEW

      REFRESH MATERIALIZED VIEW — 替换一个物化视图的内容 大纲REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name[ WITH [ NO ] DAT...

    •  PostgreSQL SAVEPOINT

      PostgreSQL SAVEPOINT

      SAVEPOINT — 在当前事务中定义一个新的保存点大纲SAVEPOINT savepoint_name描述 SAVEPOINT在当前事务中建立一个新保存点。保存...

    •  PostgreSQL pgbench

      PostgreSQL pgbench

      pgbench — 在PostgreSQL上运行一个基准测试大纲pgbench-i [option...] [dbname]pgbench [option...] [dbname]描述 pgbench是一...

    © 2024 58编程 58biancheng.com 版权所有 联系我们
    桂ICP备12005667号-32 Powered by CMS