11

我是 SBT 的新手,不确定如何开始一个项目。有人可以向我指出创建 Hello World 类型项目的初学者指南,或者给我一些线索吗?

我首选的 IDE 是 IDEA。我已经sbt-idea按照IDEA Plugins page上的说明运行了。目前我有点困惑,因为

  • 没有创建源文件夹 - 我应该在哪里/如何创建它们以及 SBT 如何知道在哪里查找?
  • 为什么在我已经放入文件时尝试使用 Scala scalaVersion := "2.9.0"2.8.1 build.sbt?这意味着 IDEA 无法识别object HelloWorld extends App {}.
  • 上面插件页面上的说明建议更改“运行配置(包括默认运行配置)”的启动前选项。列出了 13 种不同的默认配置,用于不同的事物 - 要更改哪一种?我应该创建一个新的吗?这些默认配置仅适用于该项目还是会对我所有其他不使用 SBT 的项目产生不利影响?

谢谢。

4

3 回答 3

16

这对我有用:

首先让 sbt 和 gen-idea 插件运行...

  1. 下载 sbt-launch.jar 并创建用于启动它的脚本,如SBT Github wiki中所述。
  2. 为您的新项目创建一个目录,例如(在 linux 上)~/myCode/myNewProject 并切换到该目录
  3. 运行sbt命令。这应该下载 scala 库并创建一个“项目”和“目标”目录。
  4. 切换到“项目”目录。
  5. 如sbt-idea 插件 Github wiki中所述,使用以下行在此目录中创建一个新文件“build.sbt” :

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.0.0")
    
  6. 切换回您的主项目目录,例如 ~/myCode/myNewProject。运行sbt。它应该下载 gen-idea 插件。

  7. 从 sbt 控制台(现在应该正在运行),运行gen-idea命令。它应该创建 IDEA 项目目录。对我来说,它也会发出大量警告。

现在让 IDEA SBT 控制台插件运行...

  1. 打开 IDEA 并从插件管理器中安装“SBT”插件并重新启动 IDEA。(注意这是 IDEA 插件,而不是上面描述的 sbt 插件。)按照 wiki 上的描述配置 SBT 插件(运行配置、sbt-launch.jar 的位置等)。
  2. 在 IDEA 中打开刚刚生成的 IDEA 项目。
  3. 将您的代码和其他内容放在预期的默认目录中,如sbt wiki 中的 'Directory Layout' 下所述。您需要自己创建这些目录 - sbt 不会自动创建它们。'src' 和 'test' 目录应该与 sbt 创建的 'project' 和 'target' 目录处于同一级别。
  4. 制作一个新的 'build.sbt' 文件并将其放入 ~/myCode/myProject (或您所称的任何名称)。因为我只是在搞清楚 sbt,所以到目前为止我的很简单 - 只是将 scalatest 指定为依赖项并使用 Scala 2.9:

    name := "myProject"
    
    version := "0.1"
    
    organization := "me"
    
    libraryDependencies += "org.scalatest" % "scalatest_2.9.0" % "1.6.1"
    
    scalaVersion := "2.9.0"
    
  5. reload在 IDEA 屏幕底部的 SBT 控制台中输入命令。它应该为您下载 scalatest 和 Scala 2.9。也许您也需要运行“更新”。

于 2011-08-12T15:22:35.193 回答
4

我写了一个非常快速的指南。它打算成为 SBT 指南——没有办法为此击败SBT Wiki。这也毫无意义,因为一个人只能为 wiki 本身做出贡献。

但是,我认为我的快速指南会让你如你所愿地启动和运行。

至于目录创建,我得到的答案是 SBT 期望 IDE 来处理——我不太喜欢这种态度,但插件可以完成这项工作。你会看到我安装了 sbt eclipse 插件,所以它会为我做这件事,即使我自己使用 IDEA(当我使用 IDE 时)。

另外,请注意,理想情况下,您同时使用您提到的 SBT 的 IDEA 插件和 IDEA 的 SBT 插件。有关插件列表,请参见此处

除非 IDEA 插件已经发展了很多,否则你真的需要从 SBT 自己生成一个 IDEA 配置——IDEA 不会“读取”你的配置。这就是 IDEA 的 SBT 插件所做的。安装它,然后sbt gen-idea. 我希望这将解决您提到的问题。

但是请注意,您用于编译项目的 Scala 版本和 SBT 自己使用的 Scala 版本确实不同。这不是问题,正如预期的那样。从您的问题中我不确定您提到的 2.8.1 版本是 SBT 使用的版本,还是 IDEA 使用的版本 - 甚至是用于编译您的项目的版本,表明某些东西不起作用。

你把你提到的例子放在哪里?您应该遵循 maven 样式的目录层次结构,这意味着src/main/scala/如果您也遵循 Java 约定,则将其放在与包相关的目录的子目录中。

并尝试使用 sbt 进行编译,以确保它可以正常工作,然后再继续使用 IDEA。

于 2011-08-12T15:12:18.603 回答
0

我通常将 src 放入文件夹“src/test/scala”和“src/main/scala”中。sbt-idea 将把这个文件夹添加到 idea 中的 source/test 文件夹中。

sbt 本身需要 Scala 2.8.1 但这个版本与你的代码版本无关。如果您尝试编译一些源代码,sbt 将下载 Scala 2.9.0。

于 2011-08-12T11:44:42.087 回答