2015-12-21 161 views
13

我在斯卡拉新手,SBT
我開始使用與SBT IDEA,面對不明錯誤(表達式類型DslEntry必須符合Def.SettingsDefinition在SBT文件)
enter image description here
這很簡單與碼頭插件(例如,從插件網站獲取)的IntelliJ IDEA和SBT語法錯誤

這裏空測試項目的plugins.sbt來源:

logLevel := Level.Warn 

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

該錯誤只在IDEA GUI存在。如果我編譯項目 - 一切都很好。從控制檯 - 一切都很好。 但我不喜歡什麼時候不能正常工作

我試圖下載SBT的最後一個版本並在全局IDEA屬性中設置它的路徑 - 問題依然存在。

我下載了最後一個版本的scala插件,sbt插件和其他插件的最後一個intellij IDEA EAP - 問題依然存在。

任何人都可以幫助解決這個問題?
感謝

+0

看看的想法,開SBT選項卡的右側,選擇主要項目並刷新。 –

+0

我做了很多...很多次=))) – Alexandr

+4

[Intellij sbt sbt-native-packager和enablePlugins錯誤]的可能重複(http://stackoverflow.com/questions/31552605/intellij-sbt-sbt-native -packager-and-enableplugins-error) –

回答

14

試試這個:

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) 
+0

你會向解決方案添加解釋嗎? – Marin

+0

@Marin我對這個難題沒有一個水晶的理解。但我用我所知道的更新了答案。 – SexyNerd

+0

@SexyNerd以某種方式將'enablePlugins'分配給val實際上不會啓用該插件。擺動的線條消失了,但是沒有啓用插件。 –