跳至主要內容

IDEA升级到2021.3之后,Maven私有仓库不能用的解决

码农小胖哥IntelliJ IDEAIntelliJ IDEA大约 2 分钟

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

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

原因

原来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路径下,你可以找找看。

上次编辑于:
贡献者: 程序猿DD