使用maven发布spring boot项目,失败!语句是这样写的:

mvn -U clean install

mvn clean package -Dmaven.test.skip=true -Pgdhysthj -pl platform/open-cloud-base-server,platform/open-cloud-uaa-admin-server,platform/open-cloud-api-spring-server -am

-pl:发布指定项目
-am:项目依赖的项目也同样被发布

这个语句,以前运行得好地地,久经考验。现在就是报错了:

什么“Failed to read artifact descriptor for 。。。”

什么“Failed to collect dependencies 。。。”

maven3.8.6的仓库镜像配置导致发布失败_maven


看上面的报错信息,好像是说死活拿不到依赖的包。问题是,我电脑上的.m2上是有的;然后pom.xml中指定的仓库,相关包也是有的。经过下来一阵捣鼓猛如虎,无效:

1)删掉.m2中说找不到的包,不行

2)删掉整个.m2,不行

3)换掉指定仓库,还是不行

奇怪的是,idea下操作maven,发布是没有问题的。查看版本,idea自带的maven是3.6.3,而我机器安装的是3.8.6。官网上只有3.8.6供下载,看不到有历史版本。后来发现有博客提到maven 3.8.X有所谓配置镜像的配置,大约是禁用所谓http的仓库站点:

[maven]/conf/settings.xml

<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>

将其整个删掉后问题解决。

Pseudo repository to mirror external repositories initially using HTTP.,说人家这个是假仓库,伪仓库。

参考文章:
​Maven 3.8.x 版本遇到的一个坑​​