Java 6项目依赖解析失败:TLS协议版本不兼容问题求解
Java 6 项目Maven依赖解析失败(TLS协议版本不兼容)解决办法
针对你遇到的Could not transfer artifact from central : Received fatal alert: protocol_version错误,以下是几个可行的解决思路:
1. 给Java 6打补丁并启用TLSv1.2
Java 6后期更新版本(如u115及以上)已支持TLSv1.2,但默认未开启,需手动配置:
- 先将Java 6升级到最新可用更新版本(比如OpenJDK 6u211,Oracle官方版本需注意授权限制)
- 配置Maven的JVM参数:
- 直接修改Maven启动脚本(
mvn.bat/mvn.sh),添加MAVEN_OPTS="-Dhttps.protocols=TLSv1.2" - 或者在项目pom.xml中给插件指定参数,以maven-compiler-plugin为例:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> <argLine>-Dhttps.protocols=TLSv1.2</argLine> </configuration> </plugin>
- 直接修改Maven启动脚本(
2. 搭建Maven代理仓库
用支持TLSv1.2的环境搭建内部代理仓库(如Nexus、Artifactory),让代理请求中央仓库,Java 6的Maven则请求该代理仓库:
- 部署代理仓库后,修改本地或项目的
settings.xml,将中央仓库地址替换为代理仓库地址:<mirrors> <mirror> <id>internal-repo</id> <mirrorOf>central</mirrorOf> <url>http://your-proxy-repo-url/repository/maven-central/</url> </mirror> </mirrors>
3. 手动导入依赖到本地仓库
如果项目依赖数量不多,可直接从中央仓库下载对应jar包,手动放到本地Maven仓库的对应路径下(路径规则为groupId/artifactId/version/),绕过网络请求的TLS版本限制。
内容的提问来源于stack exchange,提问作者santi cazorla
相关产品推荐
相关产品推荐

