Windows Server 2022中还原SaxonHE11s9apiExtensions相关NuGet包失败
解决SaxonHE11s9apiExtensions NuGet包还原失败(PKIX证书路径错误)
问题核心
从报错信息底层逻辑可判断:从Maven中央仓库拉取Saxon-HE 11.6的POM文件时,SSL证书验证失败。原因是Windows Server 2022环境中,IKVM依赖的JRE未信任Maven中央仓库的SSL证书,导致无法建立安全连接。
解决方案
1. 定位IKVM关联的JRE路径
SaxonHE11s9apiExtensions基于IKVM运行,需找到项目使用的JRE:
- 检查项目根目录
IkvmMaven.xml配置文件的<javaHome>节点; - 查看系统环境变量
JAVA_HOME指向的JRE路径。
2. 导入Maven中央仓库证书到JRE信任库
- 导出证书:用浏览器打开
https://repo1.maven.org/maven2/,点击地址栏锁图标,导出证书为DER格式(保存为maven-central.cer); - 导入证书:以管理员身份打开命令提示符,执行以下命令(替换路径为你的JRE路径和证书路径):
输入默认密码keytool -import -alias maven-central -file C:\downloads\maven-central.cer -keystore "C:\Program Files\Java\jre1.8.0_381\lib\security\cacerts"changeit,确认导入操作。
3. (可选)改用国内Maven镜像规避证书问题
在项目的IkvmMaven.xml中添加国内镜像(如阿里云),替换默认的Maven中央仓库:
<repositories> <repository> <id>aliyunmaven</id> <url>https://maven.aliyun.com/repository/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
4. 清理缓存并重新还原
- 清理NuGet本地缓存:
dotnet nuget locals all --clear - 在Visual Studio中右键项目选择「还原NuGet包」,或执行命令:
dotnet restore
内容的提问来源于stack exchange,提问作者Shivanka
相关产品推荐
相关产品推荐

