SBT依赖解析失败:克隆多模块项目遇grpc依赖校验错误
问题
从云仓库克隆了一个带assembly的多模块SBT项目,构建时遇到依赖解析失败:io.grpc:grpc-core:1.25.0和io.grpc:grpc-api:1.25.0找不到,本地.ivy2仓库无对应依赖,同时Coursier缓存的元数据校验和错误。添加自定义resolvers后问题仍未解决,且IDE中各模块的蓝色方块也无法正常显示,此前该代码可正常运行。
错误日志
Checking https://repo1.maven.org/maven2/io/grpc/grpc-api/maven-metadata.xml Checking https://repo1.maven.org/maven2/io/grpc/grpc-api/maven-metadata.xml.sha1 Downloading https://repo1.maven.org/maven2/io/grpc/grpc-api/maven-metadata.xml.sha1 Downloading https://repo1.maven.org/maven2/io/grpc/grpc-api/maven-metadata.xml [error] stack trace is suppressed; run 'last commonSpark / coursierResolutions' for the full output [error] stack trace is suppressed; run 'last kpiFormulaSparkEvaluator / ssExtractDependencies' for the full output [error] stack trace is suppressed; run 'last commonSparkPmCmProcessing / ssExtractDependencies' for the full output [error] stack trace is suppressed; run 'last commonSpark / ssExtractDependencies' for the full output [error] stack trace is suppressed; run 'last mbnlSparkPmCmProcessing / ssExtractDependencies' for the full output [error] (commonSpark / coursierResolutions) coursier.ResolutionException: Encountered 2 error(s) in dependency resolution: [error] io.grpc:grpc-core:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-core [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-core\maven-metadata.xml [error] io.grpc:grpc-api:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-api [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-api\maven-metadata.xml [error] (kpiFormulaSparkEvaluator / ssExtractDependencies) coursier.ResolutionException: Encountered 2 error(s) in dependency resolution: [error] io.grpc:grpc-core:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-core [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-core\maven-metadata.xml [error] io.grpc:grpc-api:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-api [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-api\maven-metadata.xml [error] (commonSparkPmCmProcessing / ssExtractDependencies) coursier.ResolutionException: Encountered 2 error(s) in dependency resolution: [error] io.grpc:grpc-core:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-core [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-core\maven-metadata.xml [error] io.grpc:grpc-api:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-api [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-api\maven-metadata.xml [error] (commonSpark / ssExtractDependencies) coursier.ResolutionException: Encountered 2 error(s) in dependency resolution: [error] io.grpc:grpc-core:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-core [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-core\maven-metadata.xml [error] io.grpc:grpc-api:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-api [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-api\maven-metadata.xml [error] (mbnlSparkPmCmProcessing / ssExtractDependencies) coursier.ResolutionException: Encountered 2 error(s) in dependency resolution: [error] io.grpc:grpc-core:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-core [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-core\maven-metadata.xml [error] io.grpc:grpc-api:[1.25.0,1.25.0]: [error] not found: C:\Users\eksinvi\.ivy2\local\io.grpc\grpc-api [error] wrong checksum: C:\Users\eksinvi\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\grpc\grpc-api\maven-metadata.xml [error] Total time: 8 s, completed 7 Aug, 2024 12:13:25 PM [info] shutting down sbt server
已添加的Resolvers配置
resolvers ++= Seq("io.grpc" at "https://mvnrepository.com/artifact/io.grpc/grpc-core", "io.grpc" at "https://mvnrepository.com/artifact/io.grpc/grpc-api")
解决方案
清理损坏的缓存
校验和错误是缓存文件损坏导致的,直接删除对应缓存目录:- 删除Coursier缓存:
C:\Users\eksinvi\AppData\Local\Coursier\cache - 删除Ivy2本地仓库:
C:\Users\eksinvi\.ivy2\local
或者用SBT命令一键清理:sbt clean cleanFiles
- 删除Coursier缓存:
修正Resolvers配置
之前配置的resolves地址错误,mvnrepository是依赖查询网站,不是合法的Maven仓库源。替换成标准仓库:resolvers ++= Seq( "Maven Central" at "https://repo1.maven.org/maven2/", "Google Maven" at "https://maven.google.com/" )不需要为单个依赖单独配置仓库,只要仓库包含所需依赖即可。
强制重新拉取依赖
清理缓存后,运行sbt update命令,强制SBT重新解析并下载所有依赖,避免缓存残留问题。修复IDE模块显示问题
模块蓝色方块不显示是IDE未同步项目,执行以下操作:- 打开IDE的
File -> Invalidate Caches...选项 - 勾选"Invalidate and Restart",重启IDE后重新导入项目
- 打开IDE的
内容的提问来源于stack exchange,提问作者Vikrant Singh Rana
相关产品推荐
相关产品推荐

