查看原文
其他

IDEA升级到2021.3之后Maven私有仓库挂了,怎么办?

程序猿DD 2021-12-11

The following article is from 码农小胖哥 Author 请关注星标

作者 | 码农小胖哥

来源 | https://mp.weixin.qq.com/s/1go69A0uhiadVb-mOrd5mA

更新到Intellij IDEA 2021.3之后,Maven出问题了!无法从Maven私有仓库下载依赖了。

提示要从maven-default-http-blocker下载,难道不应该去私仓下载吗?

如果您正在学习Spring Boot,那么推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/

原因

原来IDEA更新到2021.3后内置Maven的版本提升到了3.8.1

Maven3.8.1发布一个变更(CVE-2021-26291):

由于使用 HTTP 的自定义存储库可能导致中间人攻击。现在越来越多的存储库使用 HTTPS,但情况并非总是如此。这意味着 Maven Central 包含带有自定义存储库的 POM,这些存储库通过 HTTP 引用 URL。这使得通过此类存储库下载的内容成为攻击目标。开发人员可能没有意识到某些下载使用了不安全的 URL。由于上传到 Maven Central 的 POM 是不可变的,因此需要对 Maven 进行更改。

为了解决这个问题,从3.8.1开始setting.xml会增加一个默认镜像maven-default-http-blocker来阻止从HTTP链接下载不安全的依赖库。

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

因为我们的Maven私有仓库是内网部署的,并没有去设置HTTPS,导致这个问题也就不足为奇了。

解决办法

既然找到了原因,解决这个问题就很简单了。最简单的方法就是降级IDEA版本或者不使用内置的Maven;最好的方法就是升级到HTTPS。如果你想维持现状就需要把setting.xml中的默认镜像(上面给出的xml标签)给删除掉。

如果你是Toolbox安装的话,在Windows下路径为:

C:\Users\你的用户\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\数字文件名\plugins\maven\lib\maven3\conf

我猜想都应该在安装目录的插件文件夹下的\maven\lib\maven3\conf路径下,你可以找找看。

还有小伙伴吐槽 2021.3 升级后不能无限试用了,正好看到一个方法,大家可以关注公众号 TJ君,回复IDEA2021.3,试试看吧


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存