【问题标题】:IntelliJ IDEA 13: new Scala SBT project hasn't src directory structure generatedIntelliJ IDEA 13:新的 Scala SBT 项目尚未生成 src 目录结构
【发布时间】:2014-07-06 11:40:53
【问题描述】:

我按照 Jetbrains 网站上的入门视频设置 IntelliJ IDEA 13.1 社区版以使用 Scala。 Scala 插件 v0.36.431 已安装。当我使用向导创建了一个新的 Scala SBT 项目时,项目中没有生成 src/ 目录结构。只生成了两个 sbt 文件:

scala-course/
├── build.sbt
└── project
    └── plugins.sbt

从视频和其他文档我知道应该有一个src/的目录结构,包括src/main/scalasrc/test/scala等。sbt默认使用和Maven一样的目录结构来存放源文件。

我可以手动创建这些文件夹并将其标记为源根目录。然而这是微不足道的。所以我的问题是:为什么 IntelliJ IDEA 新项目向导不生成文档中所述的目录结构?我做错了什么吗?我检查了首选项,但找不到任何相关的内容。

【问题讨论】:

    标签: scala intellij-idea sbt intellij-13


    【解决方案1】:

    通常它应该自动创建这些文件夹。不过这可能需要一段时间 - 就我而言,这需要几秒钟。

    在创建项目时确保您已选择 Scala -> SBT,然后继续执行向导。

    单击完成后,项目将被加载。 这部分需要几秒钟,在完成之前我看不到 src/main/scalasrc/test/scala 生成。观察屏幕底部以查看何时完成。

    该过程完成后,您将看到文件夹。

    如果不是这种情况,请检查设置。您应该选中为空内容根目录自动创建目录。您可能需要检查使用自动导入来自动传播build.sbt中的更改。

    更改设置后(如果需要更改),您可能需要刷新项目,如下图所示。

    【讨论】:

    • 谢谢。就我而言,它花了 5 分钟。有 2 个进程正在运行(见右下角的活动),一个正在更新 SBT,另一个正在创建索引。 SBT完成后,目录出现了。
    【解决方案2】:

    感谢lpiepiora,用他的hint我找到了原因。

    因为我的sbt是新安装的,所以~/.ivy2/cache/~/.sbt/boot/里面什么都没有。 sbt 需要从网络上的存储库中下载所需的依赖项。碰巧我的互联网代理有问题,下载卡住了。

    另外需要注意的是,如果在后台运行 sbt 时退出 IntelliJ IDEA,下次你会得到等待某个锁定文件的错误。必须删除文件系统上的锁定文件并重新启动 IntelliJ IDEA。

    修复网络问题后,一切正常。下载所需的 jar 文件需要几分钟,具体取决于网络速度。完成后,src/目录结构就创建好了。

    【讨论】:

      【解决方案3】:

      如果您没有选择 JDK,也会发生这种情况。出于某种原因,您不再可以选择 SDK,因此您必须确保事先已配置此选项。要解决此问题,请执行以下操作:

      From the welcome screen, go to 
      Configure -> Project defaults -> Project structure and add the jdk.
      

      来源: What's the reason for "Error:Cannot determine Java VM executable in selected JDK"?

      【讨论】:

      • 那是我的问题!非常感谢! :)
      【解决方案4】:

      我按照这个线程中的说明进行操作,但是我在 sbt 的最后阶段发生了 java 崩溃,配置如下,我认为这个信息可能有用:

      问题发生在 IDEA 2016.2、sbt 0.13.8(我后来尝试使用 0.13.12 导入但崩溃相同)、scala 2.11.8 和 ubuntu 16.04。

      我可以让它工作的唯一方法是使用 java 8 而不是 9。

      error: error while loading package, Missing dependency 'object java.lang.Object in compiler mirror', required by /home/jbamaral/.sbt/boot   at xsbt.boot.Boot.main(Boot.scala)
      ... 
      stack log here
      ...
      [error] scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-22
        • 2014-06-14
        • 1970-01-01
        • 2014-02-05
        • 2013-03-22
        • 1970-01-01
        • 2011-04-17
        • 1970-01-01
        相关资源
        最近更新 更多