在IntelliJ上运行喷涂

时间:2014-11-29 13:19:29

标签: scala intellij-idea sbt spray intellij-14

我正在尝试在IntelliJ 14上运行Spray示例。

所有看起来都很正常,服务器启动并显示响应。

但是,我有两个主要问题(可能有2个问题已经连接):

1)由于某种原因,当我添加到我的build.sbt文件时:" io.spray" %%" spray-json" %" 1.2.6"它没有做任何事情(我无法导入spray.json)。

2)IntelliJ在行上显示错误:Revolver.settings。我相信这就是我改变代码时不会改变浏览器刷新的原因。 intelliJ显示的错误是:"表达式类型(Def.Settings Definition)必须符合SBT文件中的设置[_]"。

有没有人知道如何解决这个问题?

我的build.sbt在更改后:Revolver.settings改为:Revolver.settings: Seq[sbt.Def.Setting[_]]

organization  := "com.example"

version       := "0.1"

scalaVersion  := "2.10.4"

scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")



libraryDependencies ++= {
  val akkaV = "2.3.6"
  val sprayV = "1.3.2"
  Seq(
    "io.spray"            %%  "spray-json"        % "1.2.6",
    "io.spray"            %%  "spray-can"     % sprayV,
    "io.spray"            %%  "spray-routing" % sprayV,
    "io.spray"            %%  "spray-testkit" % sprayV  % "test",
    "com.typesafe.akka"   %%  "akka-actor"    % akkaV,
    "com.typesafe.akka"   %%  "akka-testkit"  % akkaV   % "test",
    "org.specs2"          %%  "specs2-core"   % "2.3.7" % "test"
  )
}

Revolver.settings: Seq[sbt.Def.Setting[_]]

1 个答案:

答案 0 :(得分:2)

我在使用IntelliJ 14的过程中遇到了这两个问题。这里有一些指示:

  1. 确保您使用的是最新的IDEA 14(至少建造时间为14。1424,2014年11月4日)
  2. 确保您使用的是最新的Scala插件(1.1.3)
  3. Seq[sbt.Def.Setting[_]]更改为Seq[sbt.Setting[_]]无处不在(它们是类型别名)
  4. 更新构建文件时,从SBT"外部项目"手动刷新IntelliJ项目。
  5. 步骤4需要一些解释。

    Scala插件提供与Play,Twirl,SBT和Scala兼容的所有功能。它所做的一件事是提供一个SBT工具(它可能显示在你的IDEA窗口的右侧)。当它打开时,它看起来像这样:

    enter image description here

    您可以单击左上角的刷新图标(圆形箭头)或右键单击任务名称(图像中的scrupal),然后选择"刷新外部项目"。这些操作都执行相同的操作,即运行SBT,更新项目,以及从SBT设置和定义重新生成IntelliJ项目文件。

    你可以通过其他几种方式实现这一目标。您已经发现了一种方法:重启IntelliJ IDEA。另一种方法是将Scala插件的SBT支持设置为" Auto Import"。打开此功能后,只要SBT源文件发生更改,它就会重新导入SBT设置并更新您的IDEA项目。我通常会将其关闭,因为在我修改文件时,每次按键后尝试重新导入(冗长的过程)都很烦人。因此,我使用手动方法并告诉IntelliJ何时需要刷新。

    要打开自动导入,请转到IntelliJ首选项,选择"构建,执行,部署",选择"构建工具",选择" SBT",然后在右侧面板中选择您的项目并选中"使用自动导入"领域。   - 重启IntelliJ IDEA。你已经发现这很有效。   - 将Scala插件设置为"自动导入"。