# Maven 依赖项

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

> **TL;DR**
> 要在 Maven 中使用图表，需要以下插件：   Maven   和   图  。
>
>
>
> 所有必需插件默认已 [捆绑](managing-plugins.html)。

IntelliJ IDEA 允许您管理项目中的 [Maven](maven-support.html) 依赖。 您可以添加、导入 Maven 依赖项，在图中查看它们，也可以分析它们。

## 添加 Maven 依赖项

IntelliJ IDEA 使您能够将 Maven 依赖项添加到您的项目。 我们建议您在您的  POM 中指定依赖关系。 您在 IntelliJ IDEA [模块设置](creating-and-managing-modules.html) 中手动设置的依赖关系将在下次 Maven 项目重载时被舍弃。

Procedure: 生成依赖项

1. 在编辑器中打开您的  POM 。

2. 按 `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), `Alt+Insert` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `Alt+Insert` (Visual Studio), `⌘ ⌃ N` (Visual Studio (macOS)), `Alt+Insert` (NetBeans), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS)) 打开   生成   上下文菜单。

3. 在上下文菜单中，选择   依赖  。

Maven Artifact 搜索   对话框出现。

4. 在   Maven Artifact 搜索   对话框的搜索字段中，开始输入依赖项名称。 在结果列表中选择您需要的并点击   添加  。

![Maven Artifact 搜索](https://resources.jetbrains.com/help/img/idea/2026.3/maven_artifact_search.png)

IntelliJ IDEA 将依赖项添加到您的  `pom.xml` 。

![Maven 工具窗口](https://resources.jetbrains.com/help/img/idea/2026.3/mvn_dependencies_tool_window.png)

IntelliJ IDEA 还会在   依赖项   节点的   Maven   工具窗口以及   外部库   的   项目   工具窗口中添加依赖。

如果添加的依赖项有其自己的传递依赖项，IntelliJ IDEA 会在两个工具窗口中显示它们。

![Maven 工具窗口](https://resources.jetbrains.com/help/img/idea/2026.3/maven_dependency_trans.png)

Procedure: 使用代码补全添加依赖项

1. 在编辑器中打开您的  POM 。

2. 开始将依赖项添加到 POM 文件的  `dependencies`  部分。

开始输入依赖项名称时，IntelliJ IDEA 会显示相关搜索结果列表。 每个建议的依赖项都带有一个图标，指示其来源（本地或远程服务器）。

![依赖补全](https://resources.jetbrains.com/help/img/idea/2026.3/dependency_completion.png)

3. 选择依赖项，并使用代码补全补充其余信息。

4. 点击 ![Sync Maven Changes 图标](https://resources.jetbrains.com/help/img/idea/2026.3/maven.images.expui.build.mavenLoadChanges.svg) 以同步项目中的更改。

Procedure: 启用注解处理器

1. 请打开您的  POM 文件。

2. 请指定  `annotationProcessors`  和  `annotationProcessorPaths`  选项。

例如，检查以下代码：

```XML
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <annotationProcessorPaths>
                   <path>
                       <groupId>org.sample</groupId>
                       <artifactId>sample-annotation-processor</artifactId>
                       <version>1.2.3</version>
                   </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

```

如需更多信息，请参阅 [Maven](https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html)。

3. 重新导入您的项目。 IntelliJ IDEA 创建一个注解处理器配置文件，启用注解处理，并将适当的路径添加到 [Annotation Processor](annotation-processors-support.html#annotation_processing) 设置中，位置在  `设置 | 构建、执行、部署 | 编译器` 。

![注解处理器设置](https://resources.jetbrains.com/help/img/idea/2026.3/annotationProcessorsMaven.png)

## 集中依赖信息

在多模块 Maven 项目中，父 POM 中的依赖项将被所有子项目继承。 您可以使用  `dependencyManagement`  来整合并 [集中管理依赖项的版本](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management)。

Procedure:

1. 在编辑器中打开您的  POM 。

2. 按 `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), `Alt+Insert` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `Alt+Insert` (Visual Studio), `⌘ ⌃ N` (Visual Studio (macOS)), `Alt+Insert` (NetBeans), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS)) 打开   生成   上下文菜单。

3. 从上下文菜单中选择   托管依赖  选项，它将显示在多模块项目的父 POM 的  `dependencyManagement` 部分中定义的依赖项列表。 IntelliJ IDEA 还显示了 [BOM files](http://logging.apache.org/log4j/2.x/maven-artifacts.html#Bill_of_Material) 中的依赖项列表。

![选择依赖项对话框](https://resources.jetbrains.com/help/img/idea/2026.3/bom_file_dependency.png)

4. 选择所需的依赖项并点击   OK  。 依赖已添加到 POM。 您无需在依赖项上指定版本，它将从  `DependencyManagement`  中获取。

![依赖管理](https://resources.jetbrains.com/help/img/idea/2026.3/dependency_management.png)但是，如果您希望覆盖定义的版本，您需要包含  `版本` ，当您添加托管依赖到 POM。

## 为 Maven 依赖项添加作用域

您可以使用 POM 为您的依赖项添加 [scope](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope)。 在这种情况下，IntelliJ IDEA 将在指定阶段执行该依赖项。

Procedure:

1. 在 POM 中，在依赖项描述中添加  `作用域` ，并使用代码补全添加作用域的名称。

```XML
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>

```

2. 导入您的更改。 范围的名称显示在   Maven  工具窗口中。 在   项目结构  对话框的   模块  页面上，您可以看到依赖范围也被显示出来。 请注意，

![项目结构对话框](https://resources.jetbrains.com/help/img/idea/2026.3/maven_project_structure_scope.png)在   项目结构  对话框中更改依赖关系的范围不会影响  `pom.xml` 文件。

您还可以在定义依赖项时，通过 Maven 范围 [system](http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#System_Dependencies)添加一个自定义  `jar`  文件作为依赖项。 但是，请注意，此依赖项仅在您的机器上可用，您只能将其用于本地部署。

## 处理 Maven 传递依赖

您可以查看 [传递依赖项](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies)，这些依赖项是随着新增或导入的 Maven 依赖项一起拉取的。 您可以检查它们的版本、更改它们或完全排除这些依赖项。

Maven  工具窗口显示了直接依赖项及其所有传递依赖项。

Procedure: 查看传递依赖关系

1. 在您的项目 POM 中，按  `Ctrl`  并将鼠标悬停在依赖项上。

2. 点击依赖项以打开该依赖项的 POM。

![依赖 POM](https://resources.jetbrains.com/help/img/idea/2026.3/dependency_pom.animated.gif)

3. 在依赖 POM 中，查看活动依赖项、其传递依赖项及其版本。

![具有传递依赖的依赖 POM](https://resources.jetbrains.com/help/img/idea/2026.3/maven_depen_pom.png) 您可以查看依赖项的来源。

![带有来源的依赖 POM](https://resources.jetbrains.com/help/img/idea/2026.3/maven_depen_origin.png)

Procedure: 排除传递依赖

如果您想，您可以排除一个传递依赖项。

1. 打开依赖项 POM，找到您想要排除的传递依赖项。 复制  `groupId`  和  `artifactId` 。

2. 在您的项目 POM 中，在您当前的依赖项下方，输入  `exclusions`  并使用代码补全粘贴您想要排除的依赖项信息。

> **Tip:**
> 您可以使用上下文菜单中的   排除  命令，在 [Maven 依赖关系图](#maven_dependency_diagram)中快速从 POM 和相应的工具窗口中排除指定的依赖项。

```XML
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.hamcrest</groupId>
                    <artifactId>hamcrest-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</dependencyManagement>

```

该依赖项也从   项目  和   Maven  工具窗口中排除。

## 导入 Maven 依赖项

您可以将依赖项导入到您的 Maven 项目中。 当 IntelliJ IDEA 导入新增的依赖项时，它会解析该依赖项并更新您的项目。

Procedure:

* 在  `pom.xml` 文件中，添加您需要的依赖项。 当您更改  `pom.xml`  时，IntelliJ IDEA 会显示通知建议加载更改。 点击 ![加载更改](https://resources.jetbrains.com/help/img/idea/2026.3/maven.images.mavenLoadChanges.svg) 在编辑器中导入依赖并更新您的项目。

* 在 [Maven](maven-projects-tool-window.html)工具窗口中，按 ![重新导入所有 Maven 项目](https://resources.jetbrains.com/help/img/idea/2026.3/app.actions.refresh.svg)。 在这种情况下，您需要手动触发所有项目及其依赖关系的 [re-importing process](delegate-build-and-run-actions-to-maven.html#maven_reimport)。

## 以图表形式查看 Maven 依赖关系

> **Warning:**
> 请确保   图   捆绑插件已 [启用](managing-plugins.html)。

IntelliJ IDEA 允许您以图表格式查看和处理 Maven 依赖项。

Procedure: 生成图表

1. 在   Maven  工具窗口，在工具栏上，点击 ![显示依赖关系图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.fileTypes.diagram.svg)或从上下文菜单中选择适当的选项。

> **Tip:**
> 在 POM 中，右键点击编辑器中的任意位置以打开上下文菜单，然后选择  `Maven | 显示依赖项` 。 或者，按 `Ctrl+Alt+Shift+U` (Windows), `⌘ ⌥ ⇧ U` (macOS), `⌘ ⌥ ⇧ U` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ ⇧ U` (macOS System Shortcuts), `Ctrl+Alt+Shift+U` (XWin), `Ctrl+Alt+Shift+U` (GNOME), `Ctrl+Alt+Shift+U` (KDE), `Ctrl+Alt+Shift+U` (Emacs), `Ctrl+Alt+Shift+U` (Sublime Text), `⌘ ⌥ ⇧ U` (Sublime Text (macOS)), `Ctrl+Alt+Shift+U` (Visual Studio), `⌘ ⌥ ⇧ U` (Visual Studio (macOS)), `Ctrl+Alt+Shift+U` (NetBeans), `Ctrl+Alt+Shift+U` (Eclipse), `⌘ ⌥ ⇧ U` (Eclipse (macOS)) 或 `Ctrl+Alt+U` (Windows), `⌘ ⌥ U` (macOS), `⌘ ⌥ U` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ U` (macOS System Shortcuts), `Ctrl+Alt+U` (XWin), `Ctrl+Alt+U` (GNOME), `Ctrl+Alt+U` (KDE), `Ctrl+Alt+U` (Emacs), `Ctrl+Alt+U` (Sublime Text), `⌘ ⌥ U` (Sublime Text (macOS)), `Ctrl+Alt+U` (Visual Studio), `⌘ ⌥ U` (Visual Studio (macOS)), `Ctrl+Alt+U` (NetBeans), `Ctrl+Alt+U` (Eclipse), `⌘ ⌥ U` (Eclipse (macOS))。

![显示依赖项](https://resources.jetbrains.com/help/img/idea/2026.3/maven_show_depen_diagram.png)

2. 在图表窗口中，IntelliJ IDEA 显示子项目及其所有依赖项，包括传递依赖项。

![Maven 依赖关系图](https://resources.jetbrains.com/help/img/idea/2026.3/maven_diagram.png)

您可以在 [图表窗口](diagram-toolbar-and-context-menu.html) 中执行不同的操作。

Procedure: 更改可见性级别

您可以更改可见性级别，例如，查看具有特定范围（编译、测试等）的依赖项。

1. 在图表窗口中，选择子项目并点击 ![更改可见级别图标](https://resources.jetbrains.com/help/img/idea/2026.3/level_visibility_icon.png)。

2. 从列表中选择您要查看的依赖范围。 IntelliJ IDEA 仅显示指定的依赖范围。

![特定范围图](https://resources.jetbrains.com/help/img/idea/2026.3/maven_specific_scope_diagram.png)

Procedure: 导航至 POM

您可以从图表窗口导航到  POM 。

* 选择所需的节点并按 `F4` (Windows), `⌘ ↓` (macOS), `F4` (IntelliJ IDEA Classic (macOS)), `F4` (macOS System Shortcuts), `F4` (XWin), `F4` (GNOME), `F4` (KDE), `F4` (Emacs), `F4` (Sublime Text), `F4` (Sublime Text (macOS)), `F4` (Visual Studio), `⌘ ↓` (Visual Studio (macOS)), `F4` (NetBeans), `F12` (Eclipse), `F3` (Eclipse (macOS))，或在其上下文菜单中选择  `跳转到源` 。 相应的文件在编辑器中打开。

您可以通过点击 图表窗口中的 ![冲突与重复项](https://resources.jetbrains.com/help/img/idea/2026.3/app.diff.applyNotConflicts_dark.svg)图标 来检查冲突和重复。

Procedure: 检查冲突和重复

* 在图表窗口中，点击 ![冲突与重复项](https://resources.jetbrains.com/help/img/idea/2026.3/app.diff.applyNotConflicts_dark.svg)图标。

![显示冲突和重复项](https://resources.jetbrains.com/help/img/idea/2026.3/error_and_duplicates.png)

红色箭头指向包含重复项或错误的依赖项。 IntelliJ IDEA 还显示依赖项的版本，以帮助您解决冲突。 双击依赖项以打开其 POM。

Procedure: 显示从选择到根的路径

您可以选择依赖项，并查看它们如何包含在项目中。

1. 在图表窗口中，选择您想要查看与项目连接的依赖关系。 如果想一次选择多个依赖项，请按住 `Shift` (Windows), `Shift` (macOS), `Shift` (IntelliJ IDEA Classic (macOS)), `Shift` (macOS System Shortcuts), `Shift` (XWin), `Shift` (GNOME), `Shift` (KDE), `Shift` (Emacs), `Shift` (Sublime Text), `Shift` (Sublime Text (macOS)), `Shift` (Visual Studio), `Shift` (Visual Studio (macOS)), `Shift` (NetBeans), `Shift` (Eclipse), `Shift` (Eclipse (macOS)) 并进行选择。

2. 点击 ![显示路径根选择](https://resources.jetbrains.com/help/img/idea/2026.3/app.hierarchy.class.svg)。

![显示路径根选择](https://resources.jetbrains.com/help/img/idea/2026.3/path_root_selection.animated.gif)

Procedure: 显示选中节点的邻居

您可以选择依赖项并查看与所选节点连接的其他依赖项。 如果您有一个大型图表并希望专注于其中的一部分，这可能会很有帮助。

1. 在图表窗口中，选择您需要的依赖项。 如果想一次选择多个依赖项，请按住 `Shift` (Windows), `Shift` (macOS), `Shift` (IntelliJ IDEA Classic (macOS)), `Shift` (macOS System Shortcuts), `Shift` (XWin), `Shift` (GNOME), `Shift` (KDE), `Shift` (Emacs), `Shift` (Sublime Text), `Shift` (Sublime Text (macOS)), `Shift` (Visual Studio), `Shift` (Visual Studio (macOS)), `Shift` (NetBeans), `Shift` (Eclipse), `Shift` (Eclipse (macOS)) 并进行选择。

2. 点击 ![显示选定节点的邻居](https://resources.jetbrains.com/help/img/idea/2026.3/app.graph.nodeSelectionMode_dark.svg)。

![显示所选节点的相邻节点](https://resources.jetbrains.com/help/img/idea/2026.3/neighbors.animated.gif)

## 依赖分析器

Maven 依赖分析器可让您快速查看和分析已解析的依赖项、未解析的依赖项、有冲突的依赖项以及项目和子项目中的传递依赖项。

Procedure: 分析依赖性

1. 在   Maven   工具窗口的工具栏中，点击 ![分析依赖性](https://resources.jetbrains.com/help/img/idea/2026.3/app.actions.dependencyAnalyzer.svg)。

或者，在 Maven 工具窗口中，右键点击所需的依赖项，然后从上下文菜单中选择   分析依赖关系  。 您也可以右键点击   项目   视图中的模块并使用相同的操作。

![已解决的依赖项](https://resources.jetbrains.com/help/img/idea/2026.3/resolved_dependencies.png)

2. 在   依赖关系分析器  窗口中，您可以缩小分析范围，只检查冲突依赖项或检查用法。

如果想在  `pom.xml`  文件中查看所需的依赖项，请右键点击该依赖项并选择   转到 Maven 依赖  。 如果您点击   打开 Maven 配置   特定依赖项，IntelliJ IDEA 将打开该依赖项的 POM 文件。

如果发现重复依赖项，它将被灰显。

![重复依赖](https://resources.jetbrains.com/help/img/idea/2026.3/duplicates_maven.png)

有关   依赖关系分析器   窗口中可用选项和图标的更多信息，请参阅 [参考](#dependency_analyzer_tool_window)部分。

### 依赖性分析器工具窗口参考

|  条目  |  描述  |
| --- | --- |
|  范围  |  您可以看到项目中使用每个 dependency 的范围。 要根据其 [scope](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#dependency-scope)缩小依赖项列表的范围，请从作用域列表中选择适当的选项。   ![依赖分析器：依赖范围](https://resources.jetbrains.com/help/img/idea/2026.3/maven_dependency_scope.png)  |
|  仅显示冲突  |  点击 ![冲突图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.toolwindows.problemsEmpty.svg) 仅查看未解决或有冲突的依赖项。   ![冲突的依赖项](https://resources.jetbrains.com/help/img/idea/2026.3/maven_conflict_dependencies.png)  |
|  显示 GroupId  |  点击 ![显示 GroupId](https://resources.jetbrains.com/help/img/idea/2026.3/app.actions.show.svg) 并选择   显示 GroupId   在依赖项列表中显示 [GroupId](https://maven.apache.org/guides/mini/guide-naming-conventions.html) 。  |
|  显示为树  |  切换 ![显示为树](https://resources.jetbrains.com/help/img/idea/2026.3/app.actions.showAsTree.svg)以节点或平面列表的形式显示依赖项列表。    树视图将帮助您快速检查传递依赖项。     |
|  展开 / 折叠  |  使用 ![展开全部图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.expandAll.svg) / ![折叠全部图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.collapseAll.svg) 展开或折叠依赖项列表。  |

