如何在IDEA中完全清理,重新解析和重建Scala sbt管理的项目?

Tob*_*ber 42 scala intellij-idea sbt

TL; DR:当SBT文件更改时,如何完全协调IntelliJ中的所有依赖项

我在IntelliJ中设置了SBT项目.在大多数情况下,如果像魅力一样工作,但对我来说,改变依赖项和编译器的版本是相当痛苦的.

我希望做的是更新我的SBT文件,然后单击IntelliJ中的清洁项目,这样它就是最新的.

我找到的最好的菜单项是Rebuild项目.它读取新的依赖项,但保留旧的依赖项,因此外部库包含Scala运行时和第三方库的多个版本.

为了解决这个问题,我可以关闭IntelliJ并删除所有文件.idea/libraries.当我重新启动IntelliJ时,它将重新解析依赖项.它可以工作,但手动删除元数据文件表明我做错了.

Pol*_*ase 10

在*.sbt文件中进行更改后刷新IntelliJ:

  • 打开SBT项目窗格(菜单视图/工具窗口/ SBT)
  • 右键单击您的SBT项目
  • 选择刷新外部项目

在此输入图像描述

  • 如果有陈旧的编译类,您可能必须删除目标和项目/目标目录才能重新编译这些类。 (2认同)
  • 还需要运行“sbt clean”和“sbtcompile”。 (2认同)

Bre*_*ust 9

保存SBT文件时,IntelliJ IDEA通常会刷新项目.但如果没有,你可以手动完成.

SBT面板中有一个刷新所有SBT项目按钮:

在此输入图像描述 在此输入图像描述

在IDEA仍然困惑的情况下,找不到您刚添加的包:

从文件菜单:

使缓存ScreenShot无效

这是一个相当大的锤子,需要重新启动应用程序,并且需要多分钟重建IntelliSense索引.但偶尔也会让IDEA认识到你的新SBT套装.


Max*_*Max 6

尝试以下步骤:

  1. 关闭IntelliJ
  2. 备份整个项目文件夹
  3. 删除 .idea 文件夹
  4. 删除目标文件夹
  5. 删除项目/目标文件夹
  6. 重新打开 IntelliJ 并导入为 sbt 项目

请注意,这仅适用于 SBT 项目


cev*_*ris 5

另一个重锤,但似乎有效。

  1. 关闭 IntelliJ
  2. 删除.idea文件夹
  3. 从现有来源导入应用程序


Dan*_*don 4

我以前也遇到过这种情况,是的,就是 PITA。

我通常做的是手动从项目中删除所有依赖项,然后让 sbt 重新导入实际需要的内容。不过,不要在 UI 上执行此操作,因为即使有多个选择,也会要求确认每个依赖项!.iml(您将单击“是,我确定”一个小时),而是直接从目录中的项目文件中删除.idea/modules