首次在项目中,执行gradle相关命令时,报错:
$ gradlew -v
Downloading https://services.gradle.org/distributions/gradle-7.5-bin.zip
Exception in thread "main" javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
如上我运行根目录下的gradlew 以查看gradle-wrapper的版本。直接看报错最后一句,知道是和https有关。但这个下载地址是官方的,它为什么还报错呢?原来它要去 ${jdkhome} /lib/security/cacerts文件查看https证书。恰巧我用的jdk9这个文件里 没有证书:
$ cat cacerts
�����hnE�Cߤْ�Aζ�c0ג
所以只要从其他jdk路径下复制一份该文件就可以不报错了。
另外,gradle-wrapper下载的这个zip文件,会存放到 $GRADLE_USER_HOME /wrapper/dists/gradle-xx-bin/f1wcc9nvz97x2xlu9sv/目录下,如果命令中下载速度太慢!也可以手工下载好 https://services.gradle.org/distributions/gradle-6.5-all.zip (修改所需版本号)放到那个目录下,再次运行命令时,会自动解压。