【复盘】Maven下载Release包失败问题

Maven下载Release包失败问题复盘

问题描述

我在建立maven 私服时,在尝试从Nexus仓库下载Maven项目的Release包时,遇到了以下错误:看好下载状态 Downloading、Downloaded.

Downloading from daoxiu-releases: http://192.168.1.17:8081/repository/maven-release/org/daoxiu/common-service/1.0.2/common-service-1.0.2.pom
Downloading from nexus-mine: http://192.168.1.17:8081/repository/maven-public/org/daoxiu/common-service/1.0.2/common-service-1.0.2.pom

==Downloaded== from nexus-mine: http://192.168.1.17:8081/repository/maven-public/org/daoxiu/common-service/1.0.2/common-service-1.0.2.pom (1.8 kB at 21 kB/s)

Downloading from daoxiu-releases: http://192.168.1.17:8081/repository/maven-release/org/daoxiu/common-service/1.0.2/common-service-1.0.2.jar
Downloading from nexus-mine: http://192.168.1.17:8081/repository/maven-public/org/daoxiu/common-service/1.0.2/common-service-1.0.2.jar

Downloaded from nexus-mine: http://192.168.1.17:8081/repository/maven-public/org/daoxiu/common-service/1.0.2/common-service-1.0.2.jar (2.4 kB at 37 kB/s)

[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ order-service ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ order-service ---
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] micro-shop 1.0-SNAPSHOT ............................ SUCCESS [  0.001 s]
[INFO] user-service ....................................... SUCCESS [  0.295 s]
[INFO] commons-service 1.1.0 .............................. SUCCESS [  0.014 s]
[INFO] order-service 1.0.1-SNAPSHOT ....................... SUCCESS [  0.322 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.678 s
[INFO] Finished at: 2024-07-16T09:46:00+08:00
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

BUILD SUCCESS!

到这里我以为大功告成的时候,无意间看了一下加载顺序地址。

嘿!哦?! 

包能下载了,但是仔细一看发现一个问题,包都是从/repository/maven-public 下载成功的

但是我配置了是release仓库 角色权限和账号daoxiu-releases,每次虽然都有请求到 /repository/maven-release 状态是Downloading,但是能看到最终成功的都是从maven-public仓库中Downloaded下载成功的。

可以从请求日志中看到每次都是有请求这个地址 http://192.168.1.17:8081/repository/maven-release/org/daoxiu的,但是就是没有一个包是从这里下载下来的,最终都是从http://192.168.1.17:8081/repository/maven-public/ 拉下来的包。

经验分析:

1、加载优先级的问题?

2、daoxiu-releases账号权限的问题?

3、这个版本的jar包不存在仓库中

排查原因分析

首先排除 3 

我确认这个包common-service-1.0.2.jar 的确存在。

再次

排除2, 判断错误是由于权限配置问题,索性给daoxiu-releases 用户赋予了nx-all Privileges。还是不行。

最后

索性将加载地址拷贝出来,在浏览器查看。奇怪一个200,一个404。我丢,再细细思量,一看404 包名称写错了,少了个“s”即 maven-releases 而非 maven-release,我xxxx。

httpcode:200
http://192.168.1.17:8081/repository/maven-release/org/daoxiu/common-service/1.0.2/common-service-1.0.2.jar

httpcode:404
http://192.168.1.17:8081/repository/maven-release/org/daoxiu/common-service/1.0.2/common-service-1.0.2.jar

最终发现实际原因是仓库地址配置错误。正确的仓库地址应该是:

  • daoxiu-releaseshttp://192.168.1.17:8081/repository/maven-releases/
  • nexus-minehttp://192.168.1.17:8081/repository/maven-public/

由于地址错误,Maven无法从daoxiu-releases下载Release包,而是从nexus-mine下载了POM和JAR文件。

解决步骤

1. 检查并更新仓库配置

确保在pom.xml文件中正确配置仓库地址:

<repositories>
    <repository>
        <id>daoxiu-releases</id>
        <url>http://192.168.1.17:8081/repository/maven-releases/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>nexus-mine</id>
        <url>http://192.168.1.17:8081/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

确保在settings.xml文件中正确配置服务器认证信息:

<servers>
    <server>
        <id>daoxiu-releases</id>
        <username>your-username</username>
        <password>your-password</password>
    </server>
    <server>
        <id>nexus-mine</id>
        <username>your-username</username>
        <password>your-password</password>
    </server>
</servers>
2. 清理Maven缓存并重新构建

执行以下命令清理Maven缓存并重新构建项目:

mvn clean install -U
3. 验证下载过程

重新运行Maven构建命令,确认依赖包从正确的仓库下载:

mvn clean install

执行顺序日志,这里就是从repository/maven-releases下载包了。

[INFO] ----------------------< org.forsx:order-service >-----------------------
[INFO] Building order-service 1.0.1-SNAPSHOT                              [4/4]
[INFO] --------------------------------[ war ]---------------------------------
Downloading from daoxiu-releases: http://192.168.1.17:8081/repository/maven-releases/org/daoxiu/common-service/1.0.2/common-service-1.0.2.pom
Downloaded from daoxiu-releases: http://192.168.1.17:8081/repository/maven-releases/org/daoxiu/common-service/1.0.2/common-service-1.0.2.pom (1.8 kB at 19 kB/s)
Downloading from daoxiu-releases: http://192.168.1.17:8081/repository/maven-releases/org/daoxiu/common-service/1.0.2/common-service-1.0.2.jar
Downloaded from daoxiu-releases: http://192.168.1.17:8081/repository/maven-releases/org/daoxiu/common-service/1.0.2/common-service-1.0.2.jar (2.4 kB at 39 kB/s)
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ order-service ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource

结论

通过检查和更新Maven仓库地址配置,成功解决了无法下载Release包的问题。确保仓库配置正确,尤其是URL地址的准确性,对于Maven依赖管理至关重要。个人实操记录,这是一份没有营养的复盘,不该存在的复盘记录。


这里是对之前问题的复盘文档,涵盖了问题描述、解决步骤和结论。希望这个复盘文档可以帮助你和团队在未来遇到类似问题时快速定位并解决问题。

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值