我是scala和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 - 问题仍然存在.
任何人都可以帮忙解决这个问题吗?
谢谢
试试这个:
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)