跳转至

子项目无法正确继承父项目配置的依赖或属性

Could not find artifact com.alibaba:fastjson:pom:unknown in central (https://repo.maven.apache.org/maven2)
Could not find artifact org.mybatis:mybatis:pom:unknown in central (https://repo.maven.apache.org/maven2)

1. 父项目与子项目的 packaging 配置

父模塊管理多模塊項目通過 modules 定義所有子項目通常設置為 packagingpom,僅用來聚合和管理子項目的配置。

父项目的 packaging 应设置为 pom,以便作为一个模块管理器。

如果父项目未正确设置为 pom,子项目可能无法正确继承。

检查父项目的 pom.xml

<packaging>pom</packaging>

問題: packaging 配置 jar

子項目 A 提供的是可重用的 Java 類庫或功能模塊,則它的 packaging 應設置為 jar(默認)。

2. 依赖的范围问题

从错误信息来看,Maven 可能在解析子项目依赖时未能解析父项目中声明的版本号。通常原因是子项目的依赖未完全继承父项目中的版本配置。

在父项目 dependencyManagement 中声明依赖的版本

<properties>
    <fastjson.version>1.2.58</fastjson.version>
    <mybatis.version>3.5.1</mybatis.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>