构建项目时报错 Cannot find project Scala library 2.12 for module xxxx
在File -> Project Structure中查看对应module的Dependencies,检查依赖包版本是否正确,选中然后点减号去掉旧版本的scala依赖包(一般都是因为替换scala版本时,没有自动清除之前的scala依赖包导致的,这还可能会导致运行时异常java.lang.NoSuchMethodError),Global libraries中有旧版本的也去掉。如果还不行就多删除 /clean几次,直到这里都变成新版本的,项目目录下的External Libraries中也没有旧版本的依赖包为止。或者按照下面第三部分的步骤重新切换一下scala版本。
至于为什么没有自动清除旧版本的依赖包,我猜可能是因为项目中有其他库依赖了旧版本的依赖包。
参考:作为Java开发者我们都遇到过java.lang.NoSuchMethodError错误,究其根源,是JVM的“双亲委托模型”引发的问题。如果在类路径下放置了多个不同版本的类包,如jar 和 jar 都位于类路径中,代码中用到了commons-lang4.x类的某个方法,而这个方法在jar中并不存在,JVM加载器碰巧又从 jar中加载类,运行时就会抛出 NoSuchMethodError的错误。
这种问题的排查通常是比较棘手的,特别是在Web应用中,类路径的系统目录比较多,特别实在类包众多时,情况尤其负责,你很难知道JVM到底从哪个类包中加载类文件。
在maven项目中切换scala版本如果姿势不正确很容易导致一些奇奇怪怪的错误,下面梳理一下完整步骤:
maven clean
修改pom文件,修改用到的spark/scala版本号。只修改,不要点右上角Load Maven Changes标识
打开File -> Project Structure -> Global libraries,点+号添加新版本的scala,然后删掉旧的scala,点apply ok
Build -> Rebuild project
重新运行一下项目(右上角绿色三角)
回到pom文件,点一下右上角Load Maven Changes标识。完成
本文发布于:2024-01-28 04:12:04,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063863264675.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |