You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Maven创建多模块项目?父POM添加依赖无法解析怎么解决?

问题原因分析

你遇到的pom解析错误通常由以下几类常见操作失误导致:

  • 依赖书写位置错误:将依赖内容写在了<project>根标签外,或没有包裹在正确的<dependencies>标签内,和<modules>等标签层级混乱
  • 缺少依赖版本声明:父pom未继承Spring Boot官方父依赖、也未通过<dependencyManagement>统一管理版本,直接添加无版本号的Spring相关依赖时,Maven无法定位对应依赖资源
  • 标签语法错误:存在标签未闭合、特殊符号转义错误、格式错乱等语法问题
多模块项目依赖正确配置方案

多模块项目通常遵循「版本统一管理,依赖按需引入」的原则配置:

1. 父pom改造(统一管理依赖版本)

父pom的核心作用是声明模块结构、统一管控所有依赖的版本,避免子模块出现版本冲突:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- 继承Spring Boot官方父依赖,统一管控Spring全家桶版本,可替换为你需要的版本号 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.15</version>
        <relativePath/>
    </parent>

    <groupId>org.ev</groupId>
    <artifactId>multi</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>main</module>
        <module>user</module>
    </modules>

    <!-- 统一声明所有依赖的版本,子模块引入时无需再写version -->
    <dependencyManagement>
        <dependencies>
            <!-- 示例:添加Spring Web依赖声明 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <!-- 示例:添加lombok依赖声明 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.30</version>
            </dependency>
            <!-- 其他公共依赖的版本声明都可以加在这里 -->
        </dependencies>
    </dependencyManagement>

    <!-- 所有子模块都必须用到的通用依赖,可以直接在这里添加,所有子模块会自动继承
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies> -->
</project>

2. 子模块单独添加依赖

只有单个子模块用到的依赖,直接在对应子模块的pom.xml中添加即可,不需要重复写版本号:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>multi</artifactId>
        <groupId>org.ev</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>user</artifactId>

    <dependencies>
        <!-- 子模块按需添加依赖,无需写版本号,父pom已统一管理 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

</project>

3. 错误修复验证步骤

  • 检查所有pom.xml文件的标签闭合、语法格式是否正确
  • 触发Maven重新加载:右键项目选择Maven->Reload Project
  • 若仍存在依赖拉取失败问题,检查本地Maven配置、网络连接是否正常

内容的提问来源于stack exchange,提问作者Emre Varol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:36:03