Windows10下使用Bazel构建Scala项目出现@local_jdk符号链接错误如何解决
错误含义
该错误和Scala、rules_scala配置无关,属于Bazel在Windows平台处理JDK依赖的缓存冲突问题:
Bazel在拉取local_jdk依赖仓库时,尝试从自动下载的远程JDK目录创建符号链接到本地JDK的仓库路径,但是目标路径下的BUILD.bazel文件已经是之前构建残留的损坏缓存文件,导致符号链接创建失败,进而触发@local_jdk仓库拉取失败,中断了整个构建流程。
解决方法
- 首先执行缓存清理命令,彻底删除工作区残留的损坏缓存:
执行完成后重新运行构建命令测试,80%以上的同类问题都可以通过该操作解决。bazel clean --expunge - 检查
JAVA_HOME环境变量配置是否正确:JAVA_HOME需要指向JDK的根目录(例如C:\Program Files\Java\jdk11.0.19),而不是直接指向javac.exe所在的bin子目录,错误的JAVA_HOME路径会导致Bazel识别本地JDK异常,触发和远程JDK的配置冲突。 - 若清理缓存、修正
JAVA_HOME后仍报错,可以在构建命令中指定直接使用Bazel官方远程JDK,避开本地JDK识别逻辑:bazel build :helloworld --java_runtime_version=remotejdk_11 - 少数情况是Windows权限限制导致符号链接创建失败,你可以尝试以管理员身份运行PowerShell后再执行构建命令。
内容的提问来源于stack exchange,提问作者M80
相关产品推荐
相关产品推荐

