gradle的jre环境升级到jdk 16后,下载依赖时会出现报错,比如
> Could not resolve io.flutter:arm64_v8a_release:1.0.0-d3ea636dc5d16b56819f3266241e1f708979c233.
> Could not get resource 'https://maven.aliyun.com/repository/google/io/flutter/arm64_v8a_release/1.0.0-d3ea636dc5d16b56819f3266241e1f708979c233/arm64_v8a_release-1.0.0-d3ea636dc5d16b56819f3266241e1f708979c233.pom'.
> Could not GET 'https://maven.aliyun.com/repository/google/io/flutter/arm64_v8a_release/1.0.0-d3ea636dc5d16b56819f3266241e1f708979c233/arm64_v8a_release-1.0.0-d3ea636dc5d16b56819f3266241e1f708979c233.pom'.
> PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
网上搜索一番发现是jre需要导入对应网站的证书,以https://maven.aliyun.com/为例记录。
获取证书
- 在chrome浏览器中打开对应网址,比如https://maven.aliyun.com/
- 点击地址栏左侧安全图标,继续选择"Collection is secure" -> “Certificate is valid”,chrome会展示如下证书详情弹窗
- 拖动证书图片到电脑桌面,桌面上会生成如下cer文件
导入证书
找到自己电脑上jdk的目录,替换下方的导入命令
sudo keytool -import -alias aliyun -keystore "/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home/lib/security/cacerts" -file ~/Desktop/\*.aliyun.com.cer
其中keystore password输入changeit, trust this certificate输入yes