我与 IntelliJ 有类似的问题,并且似乎正在解决 IntelliJ 中的错误。
我的版本:
- IntelliJ Ultimate 2018.2.4
- IntelliJ Scala 插件 2018.2.11
- 操作系统:Windows
- Scala:2.12.6(目前 Ammonite 当前版本 1.2.1 尚未针对 Scala 2.12.7 发布,请参见#879及以下版本)
没有 IntelliJ 项目
如果我只是打开 .sc 文件而不打开项目,那么我会收到提示
- 项目 JDK 未定义
- 模块中没有 Scala SDK
- 通知:“将所有 Ammonite 标准依赖项添加到项目中?”
通知很快就消失了。如果我在修复 JDK 之前单击“添加”按钮,则导入不起作用,并且添加按钮消失了。修复 jdk 和 scala,然后在事件日志中找到“添加所有 Ammonite ...”并单击“添加”,然后它就可以工作了。
但是,下次我重新打开 IntelliJ 时,所有设置更改都会丢失。
使用 IntelliJ 项目
- 创建新项目 Scala sbt 项目,基于默认目录的项目。
- 我把我的 sc 文件放在那里的某个地方
现在 IntelliJ 会记住 sc 文件的设置。我什至可以直接从 IntelliJ 中的资源管理器/总指挥官打开 sc 文件,但我更喜欢在将“打开方式...”配置为 intellij 之后。
不要让 IntelliJ 通过通知自动导入 sbt 项目设置,这似乎破坏了库导入,我需要重新创建项目才能恢复。
Scala 版本问题
库自动导入“添加”按钮仅适用于发布 Ammonite 的 Scala 版本。请参阅Maven Central Ammonite 版本。在撰写本文时,尚未针对 scala-2.12.7 发布 Ammonite 1.2.1,尽管当前不稳定的 ammonite 版本已发布。请参阅Ammonite 错误报告 #879。添加按钮只是默默地失败,这很糟糕,尤其是。对于像我这样的新手。
自动生成的 sbt 构建文件如下所示
name := "Ammonite"
version := "0.1"
scalaVersion := "2.12.6"
这是成功加载库后在项目设置中的外观:

这是使它编译的依赖项。请注意,“SBT:”依赖项是通过 SBT 文件自动生成的(似乎),其他是由 scala 插件 ammonite 通知功能添加的库

当 IntelliJ 无法加载 ammonite 库时,上述库列表为空。
带有 SBT 的 IntelliJ(因为 IntelliJ 丢失了菊石进口,并且对于 $ivy)
IntelliJ 似乎经常丢失其菊石进口。如果我有 SBT 设置来提供导入,那么这并不重要。此外,IntelliJ $ivy 对 ammonite 的支持仅在文件已经本地缓存在 ivy-cache 中时才有效,并且在我的 Windows 上运行 Ammonite 脚本会将文件缓存在不同的位置,这意味着 IntelliJ $ivy 导入有效地不起作用。因此,我使用 SBT 来设置我在脚本中使用的导入的总和。
我的 build.sbt
scalaVersion := "2.12.7"
// https://mvnrepository.com/artifact/com.lihaoyi/ammonite
libraryDependencies += "com.lihaoyi" % ("ammonite_" + scalaVersion) % "1.2.1-16-48ce533"
// Extra example dependency
libraryDependencies += "org.jsoup" % "jsoup" % "1.11.3"