# 模块

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

在 IntelliJ IDEA，模块是任何项目的重要组成部分——它会与项目一起自动创建。 项目可以包含多个模块——您可以 [添加新模块](#add-new-module)、 [对其进行分组](#grouping-modules)，以及 [卸载当前不需要的模块](unloading-modules.html)。

一般来说，模块由一个或多个内容根和一个模块文件组成，但模块可以在没有内容根的情况下存在。 内容根目录是用于存储代码的文件夹。 通常，它包含用于源代码、单元测试、资源文件等的子文件夹。 模块文件（  `.iml`  文件）用于保存模块配置。

模块允许您在一个应用程序中组合多种技术和框架。 在 IntelliJ IDEA 中，您可以为一个项目创建多个模块，每个模块都可以负责其自身的框架。 有关更多信息，请参见 [添加框架（面）](adding-support-for-frameworks-and-technologies.html)。

![在方案中显示的模块组成](https://resources.jetbrains.com.cn/help/img/idea/2026.3/module-composition.png)

> **Tip:**
> 有关在项目中使用模块的更多信息，请参阅 [配置项目](working-with-projects.html)。

## IntelliJ IDEA 模块与 Java 模块

在第 9 版中，Java 引入了 [Java Platform Module System](http://openjdk.java.net/projects/jigsaw/spec/)。 IntelliJ IDEA 已经有了模块的概念：每个 IntelliJ IDEA 模块都会构建自己的 classpath。 随着新的 Java 平台模块系统的引入，出现了两种模块化系统：IntelliJ IDEA 模块和使用  `module-info.java`  配置的新的 Java 9 模块。 本部分文档介绍 IntelliJ IDEA 模块。

有关 Java 9 支持的更多信息，请参阅 [IntelliJ IDEA 2017.1 中对 Java 9 模块的支持](https://blog.jetbrains.com/idea/2017/03/support-for-java-9-modules-in-intellij-idea-2017-1/)和 [Java 9 与 IntelliJ IDEA](https://blog.jetbrains.com/idea/2017/09/java-9-and-intellij-idea/)博客文章。

## 具有多个模块的项目

IntelliJ IDEA 允许您在一个项目中拥有多个模块，并且它们不一定都必须是 Java。 您可以为 Java 应用程序创建一个模块，为 Ruby on Rails 应用程序或任何其他支持的技术创建另一个模块。

一个由客户端和服务器端组成的应用程序是一个双模块项目的良好示例。

Procedure: 向您的项目添加一个新模块

1. 在   项目  工具窗口中选择顶级目录。 请点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg) 工具栏上的图标或按下 `Alt+Insert` (Windows), `⌘ N` (macOS), `⌃ N` (IntelliJ IDEA Classic (macOS)), `⌘ N` (macOS System Shortcuts), `Alt+Insert` (XWin), `Alt+Insert` (GNOME), `Alt+Insert` (KDE), `Alt+Insert` (Emacs), `Ctrl+N` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `Ctrl+N` (Visual Studio), `⌘ N` (Visual Studio (macOS)), `Alt+Insert` (NetBeans), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS)) 键。 然后选择   模块  。

将打开   新建模块   向导。

2. 在左侧的列表中，选择您要在应用程序中使用的语言。

如果您想使用 IntelliJ IDEA 未开箱即用提供的语言（例如，Python 或 PHP），请点击   更多内容可通过插件获取   并选择所需选项。

IDE 将打开一个对话框，您可以在其中选择并安装所需的语言插件。 之后，您可以关闭对话框并继续配置新项目。

3. 请为新模块命名。

4. 选择您希望在项目中使用的构建系统：原生 IntelliJ 构建器、 [Maven](maven-support.html) 或 [Gradle](gradle.html)。

对于 Gradle，您还需要为构建脚本选择一种语言：Groovy 或 Kotlin。

5. 请选择您想要使用的 [JDK](sdk.html)，从   JDK   列表中。 您可以使用项目 SDK 或指定一个新的。

6. 点击   创建  。

[Video](https://resources.jetbrains.com.cn/help/img/idea/2026.3/adding-new-module.mp4)

Procedure: 导入现有模块

您可以通过添加来自其他项目的  `.iml`  文件，将模块导入到您的项目中：

1. 在主菜单中，前往  `文件 | 新建 | 从现有源创建模块` 。

2. 在打开的对话框中，指定您要导入的模块的  `.iml`  文件路径，然后点击   打开  。

这样，您无需实际移动任何文件，即可将另一个模块附加到您的项目中。 如果您不需要将模块放在同一文件夹中，模块导入即已完成，您即可开始正常使用该项目。

> **Tip:**
> 如果您希望将模块放在同一文件夹中，请在   项目  工具窗口中，将导入的模块拖动到顶级目录。 在这种情况下，导入模块的内容将会被实际移动到您的项目文件夹中。

> **Note:**
> 有关将 Maven 或 Gradle 项目附加到当前项目的更多信息，请参见 [将 Gradle 项目链接到 IntelliJ IDEA 项目](gradle.html#link_gradle_project)和 [链接和取消链接 Maven 项目](delegate-build-and-run-actions-to-maven.html#link_unlink_maven_project)。

Procedure: 从现有源导入模块

如果项目来自外部模型，或者您想从现有的源代码创建一个模块，而这些代码不一定是导出的项目，请按照以下步骤将项目作为模块导入。

1. 在主菜单中，前往  `文件 | 新建 | 从现有源创建模块…` 。

2. 选择包含您的源代码、库和其他资产的目录，然后点击   打开  。

3. 在打开的对话框中，选择   从现有源创建模块  ，如果您想 [从现有源代码创建一个新模块](import-project-or-module-wizard.html#step3)。

否则，选择   [从外部模型导入项目](import-project-or-module-wizard.html#eclipse_sources)  ，选择项目使用的外部模型，并按照向导的步骤操作。

## 组模块

在 IntelliJ IDEA ，您可以对模块进行逻辑分组。 如果您有一个包含多个模块的大型项目，分组会使您更容易浏览项目。 模块组可以嵌套：一个组可以包含其他子组。

Procedure: 创建新的模块组（已弃用）

在早期版本（2017.2 及更早版本）中，IntelliJ IDEA 使用显式组来将模块连接在一起。 如果您已配置手动模块组，您将能够在集成开发环境的后续版本中继续使用它们。 或者，您可以 [转换模块组](#convert-module-groups)并使用限定名称。

1. 在   项目   工具窗口 ( `Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Ctrl+1` (NetBeans), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS))) 中，选择您想要分组的模块。

您还可以在   模块  页面上的   项目结构  对话框中进行此操作 ( `Ctrl+Alt+Shift+S` (Windows), `⌘ ;` (macOS), `⌘ ;` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ Comma` (macOS System Shortcuts), `Ctrl+Alt+Shift+S` (XWin), `Ctrl+Alt+Shift+S` (GNOME), `Ctrl+Alt+Shift+S` (KDE), `Ctrl+Alt+Shift+S` (Emacs), `Ctrl+Alt+Shift+S` (Sublime Text), `⌘ ;` (Sublime Text (macOS)), `Ctrl+Alt+Shift+S` (Visual Studio), `⌘ ;` (Visual Studio (macOS)), `Ctrl+Alt+Shift+S` (NetBeans), `Ctrl+Alt+Shift+S` (Eclipse), `⌘ ;` (Eclipse (macOS)))。

2. 在上下文菜单中，选择  `将模块移动到组 | 新的顶级组` 。

3. 请命名新组并点击   OK  。

新的组已创建，并标记为 ![模块组](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.nodes.moduleGroup.svg)图标。

选择   组外   以从组中排除所选模块，选择   此群组   以将模块添加到组中，或选择   至新子组   以在另一个组中创建新组。

Procedure: 将模块组转换为限定名（已弃用）

1. 在主菜单中，前往  `文件 | 将模块组转换为合格名称` 。

2. 在下一个对话框中，查看新模块名称，并在必要时进行调整。

3. 应用更改并关闭对话框。

Procedure: 按完整限定名称分组模块

IntelliJ IDEA 2017.3 之后使用完全限定名称来分组模块。 例如，如果您想将所有 CDI 模块分组，请在它们的名称前添加  `cdi` 。

1. 打开   项目结构  对话框 `Ctrl+Alt+Shift+S` (Windows), `⌘ ;` (macOS), `⌘ ;` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ Comma` (macOS System Shortcuts), `Ctrl+Alt+Shift+S` (XWin), `Ctrl+Alt+Shift+S` (GNOME), `Ctrl+Alt+Shift+S` (KDE), `Ctrl+Alt+Shift+S` (Emacs), `Ctrl+Alt+Shift+S` (Sublime Text), `⌘ ;` (Sublime Text (macOS)), `Ctrl+Alt+Shift+S` (Visual Studio), `⌘ ;` (Visual Studio (macOS)), `Ctrl+Alt+Shift+S` (NetBeans), `Ctrl+Alt+Shift+S` (Eclipse), `⌘ ;` (Eclipse (macOS))并点击   模块  。

2. 选择您要分组的模块，打开上下文菜单，然后点击   更改模块名称  。

3. 指定一个前缀并应用更改。

如果您手动编辑模块名称而不是使用专用的   更改模块名称  操作，请确保使用点（  `。` ）作为前缀和模块名称之间的分隔符。 例如，将模块从  `application`  重命名为  `cdi.application` ，会将其正确归类到  `cdi`  类别下。

要在   项目结构  对话框中查看同一级别的所有模块，请使用   扁平化模块  上下文菜单选项。

![按前缀分组的模块](https://resources.jetbrains.com.cn/help/img/idea/2026.3/change-module-names.png)

> **Tip:**
> 如果在   项目  工具窗口（ `Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Ctrl+1` (NetBeans), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS))）中启用了   扁平化模块  选项，则模块组将不可见。 您可以通过工具窗口标题中的 ![显示选项菜单](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.moreVertical.svg) 按钮禁用它。

