SBT 0.10和IDEA的初学者指南

时间:2011-08-12 11:12:32

标签: scala intellij-idea sbt sbt-idea

我是SBT的新手,不确定如何启动项目。有人能指出我创建Hello World类型项目的初学者指南,还是给我一些线索?

我首选的IDE是IDEA。我根据IDEA Plugins page上的说明运行sbt-idea。目前我有点困惑,因为

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

感谢。

3 个答案:

答案 0 :(得分:16)

这对我有用:

首先获得sbt和gen-idea插件......

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

    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项目目录。对我来说,它也会发出大量警告。
  8. 现在开始使用IDEA SBT控制台插件......

    1. 打开IDEA并从插件管理器安装“SBT”插件并重新启动IDEA。 (注意这是IDEA插件,而不是上面描述的sbt插件。) 配置SBT插件as described on its wiki(运行配置,sbt-launch.jar的位置等)。
    2. 在IDEA中打开新生成的IDEA项目。
    3. 将您的代码和其他内容放在预期的默认目录中,如sbt wiki under '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. 在IDEA屏幕底部的SBT控制台中输入reload命令。它应该为您下载scalatest和Scala 2.9。也许你也需要运行'更新'。

答案 1 :(得分:4)

我写了一篇关于它的very quick guide。它是一个SBT指南 - 没有办法击败SBT Wiki。这也没有意义,因为人们可以为维基本身做出贡献。

但是,我认为我的快速指南可以让你按照自己的意愿开始运作。

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

另外,请注意,理想情况下,您使用了您提到的SBT的IDEA插件,和IDEA的SBT插件。有关插件列表,请参阅here

除非IDEA插件发展很多,否则你真的需要从SBT生成IDEA配置 - IDEA不会“读取”你的配置。这就是IDEA的SBT插件。安装它,sbt gen-idea。我希望这能解决你提到的问题。

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

在哪里你放了你提到的例子?您应该遵循maven样式的目录层次结构,这意味着将它放在src/main/scala/上,并且可能是与包相关的子目录,如果您也遵循Java约定。

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

答案 2 :(得分:0)

我通常把src放到文件夹“src / test / scala”和“src / main / scala”中。 sbt-idea将在想法中添加此文件夹ase source / test文件夹。

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