lihan
lihan
发布于 2024-07-21 / 72 阅读
0
0

Maven 使用私服无法导入依赖

问题

当 Maven 升级到3.8.1 之后,执行 mvn clean package 命令后会报错如下:

maven-default-http-blocker (<http://0.0.0.0/>): Blocked mirror for repositories

分析

maven在3.8.1 的默认配置文件中增加了一组标签,如果仓库镜像是http 而不是https 就会被拦截禁止访问,而当前公司私服一般是http 而不支持https.

解决思路

思路一: 降低Maven 版本到3.8.1 以下

思路二:增加节点

示例如下:

<mirror>
  <id>insecure-repo</id>
  <mirrorOf>external:http:*</mirrorOf>
  <url><http://www.ebi.ac.uk/intact/maven/nexus/content/repositories/ebi-repo/></url>
  <blocked>false</blocked>
</mirror>

思路三:将镜像仓库从http 变成https

思路四:注释掉 $MAVEN_HOME/conf/settings.xml 中的拦截标签

解决方案

  • 找到Maven安装目录

  • 编辑 $M2_HOME/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>


评论