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

已存在于Artifactory的Parent POM无法被Maven识别的问题求助

父POM已部署但Maven子项目无法从Artifactory读取父POM

问题背景

  • 拥有独立父POM的Maven父子项目,在自动配置仓库的试用版Artifactory中运行正常,但在公司手动创建仓库的Artifactory中出现异常
  • 父POM部署操作成功,但子项目执行mvn clean deploy时无法找到父POM,该问题在发布仓库和快照仓库中均存在
  • 父POM的仓库路径正确,通过curl、浏览器均可访问下载,但Maven无法完成下载

错误截图

mvn clean deploy 错误截图

可复现的POM配置

父POM

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.xyzCompany</groupId>
    <artifactId>test-parent</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>
    <name>parent-pom</name>
    <description>Parent POM</description>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
            </plugin>
        </plugins>
    </build>
        <distributionManagement>
        <snapshotRepository>
            <id>snapshots</id>
            <name>artifactory-snapshots</name>
            <url>https://hidden.jfrog.io/artifactory/busy-libs-snapshot-local</url>
        </snapshotRepository>
        <repository>
            <id>central</id>
            <name>artifactory-release</name>
            <url>https://hidden.jfrog.io/artifactory/busy-libs-release-local</url>
        </repository>
    </distributionManagement>

</project>

子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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.xyzCompany</groupId>
    <artifactId>test-child</artifactId>
    <version>1.0.0</version>
    <packaging>mule-application</packaging>

    <name>salesforce-data-migration</name>
    <parent>
        <groupId>org.xyzCompany</groupId>
        <artifactId>test-parent</artifactId>
        <version>0.0.1</version>
    </parent>

    <build>
        <plugins>
            <plugin>
              <artifactId>maven-release-plugin</artifactId>
              <configuration>
                    <useReleaseProfile>false</useReleaseProfile>
              </configuration>
        </plugin>
        </plugins>
    </build>
    
    <dependencies>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.6.0</version>
        </dependency>
    </dependencies>
        
</project>

Maven Settings配置截图

Maven Settings 配置截图

补充信息

  • 公司Artifactory中,busy-libs-release是映射busy-libs-release-local内容的虚拟仓库,写入操作针对busy-libs-release-local,读取操作针对busy-libs-release,但直接从busy-libs-release-local读取也存在相同问题
  • 调试日志未提供有效排查信息

解决方案

1. 匹配仓库ID与认证信息

Maven通过仓库ID关联settings.xml中的认证信息,必须确保:

  • 父POM中distributionManagement的仓库ID(central、snapshots)与settings.xml中配置的仓库ID完全一致
  • 如果settings.xml使用自定义ID(如busy-libs-release),需修改父POM的对应仓库ID,或调整settings.xml的仓库ID,保持两者统一

2. 验证Artifactory仓库权限

  • 确认执行Maven命令的账号对目标仓库(busy-libs-release或busy-libs-release-local)拥有读取权限,浏览器能下载不代表Maven的认证会话有效
  • 登录Artifactory后台,检查该仓库的权限配置,确保账号归属的用户组具备读取权限

3. 强制刷新Maven缓存

Maven可能缓存了“找不到父POM”的状态,执行命令强制更新依赖:

mvn clean deploy -U

-U参数会强制Maven重新远程查找依赖并更新快照缓存

4. 检查父POM部署完整性

  • 登录Artifactory确认父POM的关联校验文件(如test-parent-0.0.1.pom.md5、test-parent-0.0.1.pom.sha1)已完整部署,校验和缺失会导致Maven拒绝下载
  • 重新部署父POM确保过程无报错:
cd 父项目目录
mvn clean deploy

5. 子项目明确配置仓库地址

在子POM中添加repositories配置,指定Artifactory的读取仓库:

<repositories>
    <repository>
        <id>central</id>
        <url>https://hidden.jfrog.io/artifactory/busy-libs-release</url>
        <releases><enabled>true</enabled></releases>
        <snapshots><enabled>false</enabled></snapshots>
    </repository>
    <repository>
        <id>snapshots</id>
        <url>https://hidden.jfrog.io/artifactory/busy-libs-snapshot</url>
        <releases><enabled>false</enabled></releases>
        <snapshots><enabled>true</enabled></snapshots>
    </repository>
</repositories>

确保此处的id与settings.xml中的认证ID一致

6. 升级Maven版本

尝试将Maven升级到3.6.x及以上版本,旧版本可能存在Artifactory仓库解析的兼容性问题


内容的提问来源于stack exchange,提问作者Aravind A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:17:51