首页 文章

Intellij IDEA和SBT语法错误

提问于
浏览
14

我是scala和SBT的新手
我开始使用IDEA和SBT并且面临不明确的错误(表达式类型DslEntry必须符合SBT文件中的Def.SettingsDefinition)

enter image description here

这是一个非常简单的带有jetty插件的空测试项目(例子来自插件站点)

这是plugins.sbt源码:

logLevel := Level.Warn

addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.1.0")

此错误仅出现在IDEA GUI中 . 如果我编译项目 - 一切都很好 . 从控制台 - 一切都很好 . 但是当某些东西不能正常工作时我不喜欢

我试图下载最新版本的SBT并在全局IDEA属性中设置它的路径 - 问题仍然存在 .

我下载了最后一个版本的scala插件,sbt插件和另一个插件的intellij IDEA EAP - 问题仍然存在 .

任何人都可以帮忙解决这个问题吗?
谢谢

2 回答

  • 0

    试试这个:

    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) ,则返回类型为 different ,并且它变为 DslEntry ,这使得sbt插件不满意 . 另一种解决方法是简单地使用 enablePlugins 的返回类型 . 例如:

    val foo = enablePlugins(JettyPlugin)
    
  • 16

    这是IntelliJ Scala插件的一个问题,将在即将推出的版本中修复:https://youtrack.jetbrains.com/issue/SCL-8413

相关问题