IntelliJ导入Play 2.6.12 Scala启动项目时出现类找不到错误
Fix for ClassNotFoundException: org.jetbrains.sbt.CreateTasks$ When Importing Play 2.6.12 Scala Project in IntelliJ 2017.2.1
这个错误我之前帮不少开发者解决过,本质是IntelliJ Scala插件和sbt结构生成工具的版本不兼容导致的——具体来说就是你本地缓存的sbt-structure-1.1.jar要么损坏了,要么和当前插件/Play项目的sbt版本不匹配。下面是几个靠谱的解决步骤:
方法一:清理Scala插件的缓存文件
这是最直接的修复方式,错误提示里也明确指向了缓存目录里的jar文件:
- 先完全关闭IntelliJ IDEA
- 找到路径
/Users/qdt624/Library/Application Support/IntelliJIdea2017.2/Scala/launcher/ - 删除里面的
sbt-structure-1.1.jar文件 - 重新打开IntelliJ,它会自动下载适配当前Scala插件版本的新sbt-structure文件,之后再尝试导入Play项目
方法二:降级Scala插件版本
如果清理缓存后还是报错,大概率是当前的Scala插件版本(2017.2.13)和Play 2.6.12依赖的sbt版本兼容性不好。Play 2.6.12默认用的是sbt 0.13.17,而2017.2.13版本的插件对sbt 1.x的适配可能影响了旧版本sbt的支持:
- 打开IntelliJ,进入
Settings > Plugins - 找到Scala插件,点击「Update」旁边的下拉箭头,选择「Install specific version」
- 选择2017.2.10版本安装(这个版本对sbt 0.13.x的兼容性更稳定)
- 重启IDE后重新导入项目
方法三:确认项目的sbt版本
检查你的Play项目根目录下的 project/build.properties 文件,确保里面指定的sbt版本和插件兼容:
sbt.version=0.13.17
如果之前是sbt 1.x版本,改成上面这个试试——因为Play 2.6.x对sbt 1.x的支持是实验性的,和旧版IntelliJ插件配合容易出问题。
错误原因补充
这个报错是因为IntelliJ的Scala插件在执行项目导入的CreateTasks步骤时,找不到对应的类:要么是缓存的sbt-structure-1.1.jar文件损坏,要么是该jar的版本和插件本身不匹配,导致无法完成sbt项目的任务初始化。
内容的提问来源于stack exchange,提问作者shiv455
相关产品推荐
相关产品推荐

