2015-12-21 11 views
13

Sono novizio in scala e SBT
ho iniziato ad usare IDEA con SBT e di fronte l'errore poco chiaro (tipo Espressione DslEntry devono essere conformi al Def.SettingsDefinition nel file di SBT)
enter image description here
E 'molto semplice progetto di test vuoto con il plugin pontile (esempio tratto dal sito plugin)IntelliJ IDEA e errore di sintassi SBT

ecco fonte plugins.sbt:

logLevel := Level.Warn 

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

Questo errore è presente solo in GUI IDEA. Se compilo il progetto - tutto bene. dalla console - tutto bene. Ma non mi piace quando qualcosa non funziona correttamente

Ho provato a scaricare l'ultima versione di SBT e impostare il percorso ad esso nelle proprietà IDEA globali - il problema persiste.

Ho scaricato ultimo IDEA EAP intellij con l'ultima versione di scala plugin, plug-in sbt e altri plug-in - il problema persiste.

Qualcuno può aiutare a risolvere questo problema?
Grazie

+0

Guardate il lato destro di idea, scheda SBT aperto, selezionare progetto principale e aggiornarla . –

+0

L'ho fatto molte ... molte volte =))) – Alexandr

+4

Possibile duplicato di [Intellij sbt sbt-native-packager e enablePlugins error] (http://stackoverflow.com/questions/31552605/intellij-sbt-sbt-native -packager-and-enableplugins-error) –

risposta

14

provare questo:

lazy val root = (project in file(".")). 
    enablePlugins(JettyPlugin). 
    settings(
    name := "test", 
    scalaVersion := "2.11.7", 
    version := "1.0" 
) 

Aggiornamenti: Quelle che seguono sono quello che so:

L'errore deriva dal plugin di sbt di IntelliJ https://github.com/JetBrains/intellij-sbt/blob/master/idea-plugin/src/main/scala/org/jetbrains/sbt/language/SbtAnnotator.scala#L41.

Il tipo di reso di (project in file(".")). enablePlugins(JettyPlugin) è Project. È accettabile dal plugin sbt.

Tuttavia, se si utilizza standalone enablePlugins(JettyPlugin), il tipo di ritorno è diverso , e diventa DslEntry che rende lo sbt plug infelice. Un altro modo per ovviare a questo è semplicemente quello di consumare il tipo restituito di enablePlugins. Per esempio:

val foo = enablePlugins(JettyPlugin) 
+0

aggiungerebbe una spiegazione alla soluzione? – Marin

+0

@Marin Non ho una comprensione cristallina di questo puzzle. Ma ho aggiornato la risposta con quello che so. – SexyNerd

+0

@SexyNerd In qualche modo l'assegnazione di 'enablePlugins' a un val attualmente non abilita il plugin. La linea sinuosa è scomparsa, tuttavia nessun plugin è abilitato. –