环境:玩2.3.0/Scala 2.11.1/IntelliJ 13.1
我使用 Typesafe Activator 1.2.1 使用 Scala 2.11.1 创建一个新项目。项目创建后,我运行了
gen-idea
。生成的IDEA项目编译失败,报错:
Error: scala: No 'scala-library*.jar' in Scala compiler library in test
我做错了什么吗?解决方法?
从 IDEA 13 开始,您应该使用与 Scala 插件捆绑在一起的 SBT 支持。
有了它,无需添加第三方SBT插件和运行特殊命令;只需使用“文件 -> 导入项目...”菜单项导入项目,它就会自动加载 SBT 项目结构及其依赖项。
我在 play 2.3 中使用 ./activator idea 生成的 .idea 文件也遇到了同样的问题。快速解决方法是查看“项目结构->模块”并记下编译器库的名称。对我来说是“SBT:scala2.11.1”。查看“Project Structure->Libraries”并检查该库的内容。它应该包含 scala-compiler.jar、scala-library.jar、scala-reflect.jar。如果此库不存在,请添加它们(在我的例子中,它们位于 ~/.sbt/boot/scala-2.11.1/lib 中)。
对于 IDEA 15 和从 Activator 1.3.5 导出的项目,目前只有 Russell 的解决方案有帮助。 我修复了 scala 编译器库,将位于 ~/.sbt/boot/scala-2.11.1/lib 中的 3 个库添加到库的编译器类路径和类中。索引项目后,我将此库移至 IDEA 的全局库并保存在那里。
我也有同样的问题。
如果您使用外部
sbt
即 sbt compile
构建项目,那么它将在库中创建或添加依赖项(也包括所有外部依赖项),并且 scala sdk 将根据您的 scala 版本添加为 SBT:scala*
。
所以你可以删除以SBT为前缀的SDK
并通过Intellij添加适当的SDK。
File->Project Structure->Libraries
删除SBT SDK并手动添加。
对于使用 IDEA 12 的我来说,当我取消选中 Settings.Compiler 中的“使用外部构建”框时,我解决了这个问题。
现在是2021年了,在Mac上,使用IntelliJ运行scala:
Mac
:brew install scala
IntelliJ
:打开*.scala文件,然后根据通知自动配置java JDK
和Scala SDK
我对 Maven 多模块项目意外地遇到了同样的问题。
IntelliJ 2023.1.3 会发生这种情况。
解决方案:简单地重新导入 Maven 项目即可。
我做了以下操作,它对我有用 -