构建ranger-2.3分支ranger-solr-plugin依赖解析失败问题求助
问题根因
报错核心原因是Maven 3.8及以上版本默认内置了HTTP仓库拦截机制,所有走HTTP协议的外部第三方仓库都会被默认拦截。你构建时拉取失败的org.restlet.jee:org.restlet:2.3.0依赖所属的maven-restlet仓库是HTTP协议,正好命中拦截规则,和Ranger版本、JDK版本没有关系,构建2.2.0、2.3.0分支只要用Maven3.8+版本都会触发相同问题。
可行解决方法
- 方案1:修改本地Maven配置放行需要的HTTP仓库
找到本地Maven配置文件,路径可以是Maven安装目录下的conf/settings.xml,也可以是用户目录下.m2/settings.xml,定位到<mirrors>节点下的maven-default-http-blocker配置块,要么直接注释掉整个HTTP拦截配置,要么在拦截规则的mirrorOf字段里排除需要放行的仓库ID。
默认的拦截配置如下:
修改<mirror> <id>maven-default-http-blocker</id> <mirrorOf>external:http:*</mirrorOf> <name>Pseudo repository to block HTTP external repositories</name> <url>http://0.0.0.0/</url> <blocked>true</blocked> </mirror>mirrorOf配置,排除报错里提到的两个HTTP仓库即可:
配置修改完成后重新执行原构建命令即可正常拉取依赖。<mirror> <id>maven-default-http-blocker</id> <mirrorOf>external:http:*,!maven-restlet,!apache.snapshots</mirrorOf> <name>Pseudo repository to block HTTP external repositories</name> <url>http://0.0.0.0/</url> <blocked>true</blocked> </mirror> - 方案2:降级Maven版本
换用Maven 3.6.3及更早的稳定版本搭配现有OpenJDK8环境构建,这些版本没有内置HTTP仓库全局拦截规则,不需要额外修改配置就能正常拉取依赖完成构建。
预编译包获取说明
Apache Ranger官方在每个正式版本发布时,都会同步提供预编译好的二进制安装包,不需要自行从源码构建。所有正式发布版本的安装包都托管在Apache官方归档站点中,包含SOLR Security Plugin在内的所有组件、插件的可用jar包,下载对应版本的二进制压缩包解压后即可直接使用。
内容的提问来源于stack exchange,提问作者WZH
相关产品推荐
相关产品推荐

