我正在尝试在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[_]]
答案 0 :(得分:2)
我在使用IntelliJ 14的过程中遇到了这两个问题。这里有一些指示:
Seq[sbt.Def.Setting[_]]
更改为Seq[sbt.Setting[_]]
无处不在(它们是类型别名)步骤4需要一些解释。
Scala插件提供与Play,Twirl,SBT和Scala兼容的所有功能。它所做的一件事是提供一个SBT工具(它可能显示在你的IDEA窗口的右侧)。当它打开时,它看起来像这样:
您可以单击左上角的刷新图标(圆形箭头)或右键单击任务名称(图像中的scrupal
),然后选择"刷新外部项目"。这些操作都执行相同的操作,即运行SBT,更新项目,以及从SBT设置和定义重新生成IntelliJ项目文件。
你可以通过其他几种方式实现这一目标。您已经发现了一种方法:重启IntelliJ IDEA。另一种方法是将Scala插件的SBT支持设置为" Auto Import"。打开此功能后,只要SBT源文件发生更改,它就会重新导入SBT设置并更新您的IDEA项目。我通常会将其关闭,因为在我修改文件时,每次按键后尝试重新导入(冗长的过程)都很烦人。因此,我使用手动方法并告诉IntelliJ何时需要刷新。
要打开自动导入,请转到IntelliJ首选项,选择"构建,执行,部署",选择"构建工具",选择" SBT",然后在右侧面板中选择您的项目并选中"使用自动导入"领域。 - 重启IntelliJ IDEA。你已经发现这很有效。 - 将Scala插件设置为"自动导入"。