我创建了一个新的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
。我的问题是:
谢谢!
答案 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
包。
回答你的问题:
src/main/scala
。我不知道其他目录来自哪里。 @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工作表时,我使用该选项。