IntelliJ SBT目录结构

时间:2017-02-05 21:29:39

标签: scala intellij-idea

我创建了一个新的SBT项目 HelloScala ,然后创建了一个名为 week6 的包,然后创建了一个Scala工作表。最终,我得到了以下目录结构:

~/HelloScala/.idea
~/HelloScala/project 
~/HelloScala/src/main/scala 
~/HelloScala/src/main/scala-2.12/week6/hello.sc

但是,当我将package week6放在工作表hello.sc中时,IntelliJ会警告Project names doesn't correspond to directories structure。我的问题是:

  1. IntelliJ / SBT期望的正确目录结构应该是什么?是否在某些.xml文件中指定了?
  2. 请注意,IntelliJ创建了两个scala子目录, scala scala-2.12 。这是对的吗?或者IntelliJ以某种方式无法识别已存在的scala但是下载并安装另一个scala?
  3. 谢谢!

3 个答案:

答案 0 :(得分:1)

我不经常使用IntelliJ,但通常Scala软件包应该进入src/main/scala。 Scala项目的结构与Java项目没有什么不同。最低限度你需要:

    myproject
    ├── build.sbt
    └── src
        └── main
            └── scala
                └── mypackage

这是一个包含单个包,SBT脚本的项目。

对于更复杂的示例,Scala项目可能如下所示:

    project
    ├── build.sbt
    ├── project
    ├── target
    └── src
        ├── main
        │   ├── java
        │   ├── resource
        │   └── scala
        └── test
            ├── java
            ├── resource
            └── scala

其中project文件夹由SBT用于各种目的,target文件夹包含已编译的.class文件和.jar包。

回答你的问题:

  1. 上述结构由SBT插件隐式使用。也许它是可自定义的,但在大多数情况下建议不要这样做。
  2. 您的Scala源代码应该进入src/main/scala。我不知道其他目录来自哪里。
  3. @sgu似乎我误解了你的问题,不幸的是我不能发表评论。您尝试处理的文件“hello.sc”被IntelliJ视为“Scala工作表”。我猜它是IntelliJ背后的REPL,在你编辑时进行评估。但是它不会被视为“Scala源文件”,因此添加package xxx会给出警告。如果要创建包,源文件应为“.scala”扩展名。

答案 1 :(得分:0)

您应该将所有源代码放在" main / scala"目录。 "斯卡拉-2.12"是目录,将在"项目/目标"下使用sbt创建。在编译/构建它之后。

答案 2 :(得分:0)

您是否尝试过单击Intellij Idea中scala表格上的Make project选项?当我需要将其他包导入一个scala工作表时,我使用该选项。

相关问题