前言
本地打包一直失败,报错这 com.ctg.mq:ctg-mq-server:pom:2.7.7 (present, but unavailable)
这几个包存在,但是无法依赖,另一台电脑可以,这几个包是公司内部jar,多方检查,对比版本都无法解决,尝试了网上很多办法
[ERROR] Failed to execute goal on project fssc-public-core: Could not collect dependencies for project com.eshore.fssc:fssc-public-core:jar:0.0.1-SNAPSHOT
[ERROR] Failed to read artifact descriptor for com.ctg.mq:ctg-mq-remoting:jar:2.7.7
[ERROR] Caused by: The following artifacts could not be resolved: com.ctg.mq:ctg-mq-server:pom:2.7.7 (present, but unavailable): Could not transfer artifact com.ctg.mq:ctg-mq-server:pom:2.7.7 from/to huaweicloud (https://mirror.huaweicloud.com/repository/maven/): mirror.huaweicloud.com: nodename nor servname provided, or not known
[ERROR] Failed to read artifact descriptor for com.ctg.mq:ctg-mq-client:jar:2.7.7
[ERROR] Caused by: The following artifacts could not be resolved: com.ctg.mq:ctg-mq-server:pom:2.7.7 (present, but unavailable): com.ctg.mq:ctg-mq-server:pom:2.7.7 failed to transfer from https://mirror.huaweicloud.com/repository/maven/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of huaweicloud has elapsed or updates are forced. Original error: Could not transfer artifact com.ctg.mq:ctg-mq-server:pom:2.7.7 from/to huaweicloud (https://mirror.huaweicloud.com/repository/maven/): mirror.huaweicloud.com: nodename nor servname provided, or not known
[ERROR] Failed to read artifact descriptor for com.ctg.mq:ctg-mq-common:jar:2.7.7
[ERROR] Caused by: The following artifacts could not be resolved: com.ctg.mq:ctg-mq-server:pom:2.7.7 (present, but unavailable): com.ctg.mq:ctg-mq-server:pom:2.7.7 failed to transfer from https://mirror.huaweicloud.com/repository/maven/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of huaweicloud has elapsed or updates are forced. Original error: Could not transfer artifact com.ctg.mq:ctg-mq-server:pom:2.7.7 from/to huaweicloud (https://mirror.huaweicloud.com/repository/maven/): mirror.huaweicloud.com: nodename nor servname provided, or not known
[ERROR]
[ERROR] -> [Help 1]
分析
- 网上说应该
mvn idea:idea
重构一下idea与maven依赖,虽然确实能显示打包成功,但是实际启动,运行依然报上述错误参考文章:开发问题,参数错误,程序包找不到,JAR冲突 - 尝试使用
mvn clean package -U -X
手动打包,-U参数会强制update本地的jar(不用再专门去删除),还是同类别错误参考文章 - 尝试将maven从3.9.11版本降低到另一台可以打包的电脑3.5.4版本,使用同等setting 依然无法成功maven历史版本
- 尝试取消勾选 maven>Runner>Delegate IDE build/run action to Maven 参考文章
- .......多方尝试均无法解决,太玄学
解决
后来停下来仔细想想,既然是JAR问题,索性找到他们的POM重新下载安装,因为公网没有这几个jar,两台电脑分别是不同系统,win/Mac,使用相同的方法反向安装到maven仓库
idea 反向安装jar包到仓库,可以看这个学习下
使用相同的命令,我确定报错的时候,这几个JAR没啥问题,安装都是相同命令
复制pom
<dependency><groupId>com.ctg.mq</groupId><artifactId>ctg-mq-common</artifactId><version>2.7.7</version></dependency>
反向命令(注意cmd目录)
mvn install:install-file -DgroupId=com.ctg.mq -DartifactId=ctg-mq-common -Dversion=2.7.7 -Dpackaging=jar -Dfile=ctg-mq-common-2.7.7.jar
于是决定把这三个有问题的重新删除,重新复制pom路径,重新从可以打包的仓库复制jar重新反向安装
这里注意:maven3.5.4是一个一个提示那个jar有问题,我一个个安装的,3.9.11最新版是一次性提醒你N个jar有问题,所以逐个击破,先clear再install,即可解决,比较伤脑筋,也很麻烦,折腾了一天,早上就想到是这个问题,重新安装了一次,没解决,下午切换3.5.4,先安装,在打包,一个个即可,clear清除后,使用3.9.11打包也没问题,推断出还是jar反向安装的问题,提供个大家一个思路