Maven 聚合工程 Could not find artifact 父模块找不到异常

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

说明

我们在利用Maven建立一个多模块的聚合工程时,可能会遇到这样的问题,那就是Could not find artifact xxx,并且不能找到的artifact 正是父工程

项目结构

在这里插入图片描述

此图是我聚合工程的一个项目,在对根pom.xml进行打包的时候mvn package报了如下错误
Could not find artifact com.xxx:xxx:xxx in nexus-aliyun (https://maven.aliyun.com/repository/public)

父pom(artifactId:xxx)

<?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>

    <groupId>com.xxx</groupId>
    <artifactId>xxx</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0</version>

    <modules>
        <module>xxx</module>
        <module>xxxx</module>
        <module>xxx/bbb</module>
    </modules>
    ...

子pom(我只贴有问题的)(artifactId:bbb)

<?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>xxx</artifactId>
        <groupId>com.xxx</groupId>
        <version>1.0.0</version>
    </parent>
    <version>1.0.0</version>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>bbb</artifactId>
    ...

这里就有点
疑惑了,明明父工程正在package,为什么还要去找它呢,原因是出在子工程的parent就是父工程

解决方法一(不推荐)

上述工程中,子模块 bbb会去依赖父模块xxx,但是如果父模块没有install到本地时,maven就会去远程仓库取,从而导致了那样的错误,此方法的解决方法是暂时把父工程的modules全部注释,然后install之后,在解除注释,这样的原理就是在install中把父工程给生成出来,子模块编译时自然就可以找到父模块,但这种方法的问题不仅麻烦,而且父模块还不能实时更新。所以不推荐这种方法。

最终解决

这里先说,子模块之所以要去拉远程仓库的本质是找不到父工程,虽然我们在parent声明了父工程,但是如何去得到他我们需要定义,这时候我们就要用到relativePath属性了

  1. 在默认情况下relativePath的默认值是../pom.xml它是先去寻找当前工程的上级目录的pom.xml为父工程,当找不到时,就去找本地仓库,当本地仓库找不到时,就是去远程仓库。
  2. 我们上述工程有问题的子模块之所以出问题,是因为子模块的工程路径变成了xxx/bbb,路径结构如下
    –pom.xml
    –xxx
    —bbb
    ----pom.xml
    在bbb文件夹的pom.xml默认是寻找上级目录的pom.xml,但是由于xxx不是一maven结构的工程,因此我们应该在bbb模块中配置 <relativePath>../../pom.xml</relativePath>这样在package时,便能找到父工程了,也不用每次去install父工程。

另一个细节

我们在用IDEA开发时目录结构有时会是这样
在这里插入图片描述

  1. 小箭头的文件夹图标没有被识别成模块,只是单纯的被解释成文件夹
  2. 大箭头的文件夹图标被识别成模块
  3. 所以我们还可以将小箭头的文件夹新增一个pom.xml来传递父引用,这样也能处理问题。
异常】解决 IDEA Maven 项目中“Could not find artifact“ 问题的常见情况和解决方案 你可以查看 IDEA 的错误日志,或者运行 mvn dependency:tree 命令来查看项目的依赖关系,这可能会帮助你到问题的根源。如果你的网络连接有问题,或者 Maven 仓库的服务器有问题,Maven 可能无法下载依赖项。你可以检查你的网络连接,或者尝试更换其他的 Maven 仓库(如阿里云的 Maven 仓库)。如果依赖项本身有问题,例如,它已经从 Maven 仓库中删除了,那么你可能需要寻替代的依赖项,或者联系依赖项的维护者。确保你的 Maven 配置是正确的。 阅读详情

相关推荐

已解决:Could not find artifact xxx

1.问题场景 项目编译或者打包时,发现某个子包的文件无法被编译或者打包,并且报错。Could not find artifact xxx:pom:0.0.1-SNAPSHOT in nexus (maven仓库地址) 2.问题原因 因为项目子包是依赖父包的快照文件,父包快照文件不存在时,maven就会先去本地仓库是否存在该快照文件,如果本地仓库不存在的话,就会向远程仓库请求该父包快照文件,如果本地仓库和远程仓库都不到就会报错。 3.解决方法 (1)首先打开该项目的maven管理界面,到该项目的根目录,

good_good_xiu的博客 7万+

Maven出现 Could not find artifact 的解决方法

在IDEA创建Spring Initializr项目,选择下载依赖时,项目构建时爆出:Could not find artifact com.mysql:mysql-connector-j:pom:unknown in central (https://repo.maven.apache.org/maven2)

开某人的博客 4万+

idea类存在不到解决办法

1.刷新maven项目 2.清理idea缓存 3.maven clean install 4.重新bulid 5.如果使用了lombok插件开启之后重新build

菜鸟新人 9万+

解决Maven出现 Could not find artifact的 各种方法,亲测有效!!!

解决Maven出现 Could not find artifact的 各种方法,亲测有效!!!

2301_79779756的博客 3万+

Maven异常Could not find artifact xxxx:pom

因为是聚合工程,每个子模块的pom里面都有个<parent <parent> <groupId>com.xxx</groupId> <artifactId>xxxx</artifactId> <version>1.0-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --&.

qq_30059235的博客 7万+

Maven异常Could not find artifact

Maven build("clean tomcat7:run") Maven聚合工程时,出现了一下问题: [INFO] Scanning for projects... [ERROR] [ERROR] Some problems were encountered while processing the POMs: [FATAL] Non-resolvable par...

weixin_30839881的博客 1万+

mavenMaven异常Could not find artifact

Maven build Maven聚合工程时,出现了一下问题: [INFO] Scanning for projects... [ERROR] [ERROR] Some problems were encountered while processing the POMs: [FATAL] Non-resolvable parent POM for com.easybuy:easybuy-manager:0.0.1-SNAPSHOT: Could not find artifact com.e..

coolcoffee168的专栏 3903

Maven异常:0.0.1-SNAPSHOT: Could not find artifact

执行maven install的时候出现了以下异常: [INFO] Scanning for projects…  [ERROR] [ERROR] Some problems were encountered while processing the POMs:  [FATAL] Non-resolvable parent POM for com.easybuy:easybuy-manager:...

年少青山的博客 3万+

Maven聚合项目异常Could not find artifact***

异常原因: 是在子module中没有得到父模块的依赖。 解决办法: 笔者使用的是主模块执行Install,在maven板块中点击刷新按钮即可。

qq_37466640的博客 1万+

idea的maven聚合项目的子项目编译时遇见Could not resolve dependencies for project,Could not find artifact异常

idea的maven聚合项目的子项目编译时遇见Could not resolve dependencies for project,Could not find artifact异常

10年职场两茫茫,35岁凄凉奈若何 373
上一篇: ERR_CERT_AUTHORITY_INVALID和SSL: error:0B080074:x509
下一篇: 从零开始上传开源项目到Maven中央仓库
mt23
博客等级 码龄11年 33粉丝 91原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值