Oracle ojdbc8 12.2.0.1遭Maven拦截:Oracle仓库配置变更咨询
2017年12月Oracle对其Maven仓库的访问机制做了根本性调整,直接导致旧配置无法拉取ojdbc8 12.2.0.1这类商业驱动包。具体到settings.xml里的Oracle仓库配置,主要有这几个关键变更:
公开仓库地址失效,需切换至认证仓库
之前无需认证的公开Oracle Maven仓库(比如早期的http://maven.oracle.com公开路径)被彻底关闭,现在必须使用官方认证的https://maven.oracle.com仓库地址,且该仓库仅对持有Oracle账号的用户开放。强制添加账号认证配置
现在必须在settings.xml的<servers>节点中配置Oracle账号的认证信息,否则Maven会被拦截。示例配置如下:<servers> <server> <id>maven.oracle.com</id> <username>你的Oracle注册邮箱</username> <password>你的Oracle账号密码</password> </server> </servers>同时要确保
<repositories>里的Oracle仓库节点id和上述server的id一致,才能关联认证:<repositories> <repository> <id>maven.oracle.com</id> <url>https://maven.oracle.com</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>必须预先确认许可协议
光有账号还不够,你需要先登录Oracle官网,同意《Oracle Technology Network License Agreement for Oracle Java SE》相关许可,否则即使配置了正确的账号密码,Maven请求依然会被拒绝。镜像配置需同步更新(若有使用)
如果你的settings.xml之前配置了指向Oracle公开仓库的镜像,现在需要将镜像的url更新为https://maven.oracle.com,并确保镜像的id和认证server的id匹配,避免镜像覆盖导致认证失效。
简单来说,核心就是Oracle把原来的公开仓库改成了需要账号+许可认证的私有仓库,旧配置因为缺少认证和新地址,所以从2017年12月开始就无法正常拉取ojdbc8 12.2.0.1了。
内容的提问来源于stack exchange,提问作者Stéphane GRILLON

