我是斯卡拉和SBT的新手
我开始使用IDEA和SBT并且面临不明确的错误(表达式类型DslEntry必须符合SBT文件中的Def.SettingsDefinition)
这是一个非常简单的带有jetty插件的空测试项目(例子来自插件站点)
这是plugins.sbt来源:
logLevel := Level.Warn
addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.1.0")
此错误仅出现在IDEA GUI中。如果我编译项目 - 一切都很好。从控制台 - 一切都很好。 但是当某些东西不能正常工作时我不喜欢
我尝试下载最新版本的SBT并在全局IDEA属性中设置路径 - 问题仍然存在。
我使用最新版本的scala插件,sbt插件和其他插件下载了最后一个intellij IDEA EAP - 问题仍然存在。
任何人都可以帮忙解决这个问题吗?
谢谢
答案 0 :(得分:16)
试试这个:
lazy val root = (project in file(".")).
enablePlugins(JettyPlugin).
settings(
name := "test",
scalaVersion := "2.11.7",
version := "1.0"
)
更新: 以下是我所知道的:
错误来自intellij的sbt插件https://github.com/JetBrains/intellij-sbt/blob/master/idea-plugin/src/main/scala/org/jetbrains/sbt/language/SbtAnnotator.scala#L41。
(project in file(".")).
enablePlugins(JettyPlugin)
的返回类型为Project
。它可以被sbt插件接受。
但是,如果您使用独立enablePlugins(JettyPlugin)
,则返回类型不同,并且它变为DslEntry
,这使得sbt插件不满意。另一种解决方法是简单地使用返回类型enablePlugins
。例如:
val foo = enablePlugins(JettyPlugin)
答案 1 :(得分:0)
这是IntelliJ Scala插件的问题,将在即将推出的版本中修复:https://youtrack.jetbrains.com/issue/SCL-8413