2014-08-28 11 views
7

Ho appena ottenendo il seguente errore quando si tenta di compilare tutte le applicazioni di gioco:Perché sbt segnala "value enablePlugins non è un membro di sbt.Project" nel progetto Play?

error: value enablePlugins is not a member of sbt.Project 
lazy val root = (project in file(".")).enablePlugins(PlayScala) 
            ^
sbt.compiler.EvalException: Type error in expression 
    at sbt.compiler.Eval.checkError(Eval.scala:343) 
    at sbt.compiler.Eval.compileAndLoad(Eval.scala:165) 
    at sbt.compiler.Eval.evalCommon(Eval.scala:135) 
    at sbt.compiler.Eval.evalDefinitions(Eval.scala:109) 
    ... 
    ... 
    sbt.compiler.EvalException: Type error in expression 
Use 'last' for the full log. 
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? 
Failed to reload source file list: sbt process never got in touch, 
so unable to handle request WatchTransitiveSourcesRequest(true) 

ho visto un po 'parlare di questo errore altrove, ma a differenza di questi esempi non ho alcun plugin aggiuntivi o dipendenze del progetto- Ricevo questo errore durante la compilazione di un modello non modificato play-scala dopo averlo selezionato con activator new.

Qui ci sono questi plugin inclusi nel modello in project/plugins.sbt:

L'ultima volta che ho costruito un'applicazione gioco è stato circa un mese fa e ho avuto nessun problema, nel frattempo ho la compilazione di vaniglia App di sola scala (spesso con Activator) senza problemi. Potrebbe essere collegato a Play-2.3?

Ho la linea sbt.version=0.13.5 in project/build.properties e mi sono assicurato che la mia versione sbt sia l'ultima.

Il mio codice è esattamente quella del modello play-scala, ma nel caso in cui rende le cose più facili, ecco il contenuto del build.sbt:

name := """my-first-app""" 

version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayScala) 

scalaVersion := "2.11.1" 

libraryDependencies ++= Seq(
    jdbc, 
    anorm, 
    cache, 
    ws 
) 

Grazie in anticipo per qualsiasi aiuto.

EDIT:

Facendo sbt about dalla directory radice app ottengo questo errore, che io includo integralmente:

$ sbt about 
[info] Loading global plugins from /home/.sbt/0.13/plugins 
[info] Loading project definition from /home/my-first-app/project 
/home/my-first-app/build.sbt:5: error: value enablePlugins is not a member of sbt.Project 
lazy val root = (project in file(".")).enablePlugins(PlayScala) 
            ^
sbt.compiler.EvalException: Type error in expression 
    at sbt.compiler.Eval.checkError(Eval.scala:343) 
    at sbt.compiler.Eval.compileAndLoad(Eval.scala:165) 
    at sbt.compiler.Eval.evalCommon(Eval.scala:135) 
    at sbt.compiler.Eval.evalDefinitions(Eval.scala:109) 
    at sbt.EvaluateConfigurations$.evaluateDefinitions(EvaluateConfigurations.scala:197) 
    at sbt.EvaluateConfigurations$.evaluateSbtFile(EvaluateConfigurations.scala:99) 
    at sbt.Load$.sbt$Load$$loadSettingsFile$1(Load.scala:507) 
    at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile$1$1.apply(Load.scala:502) 
    at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile$1$1.apply(Load.scala:501) 
    at scala.Option.getOrElse(Option.scala:120) 
    at sbt.Load$.sbt$Load$$memoLoadSettingsFile$1(Load.scala:501) 
    at sbt.Load$$anonfun$loadSettings$1$2.apply(Load.scala:500) 
    at sbt.Load$$anonfun$loadSettings$1$2.apply(Load.scala:500) 
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) 
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) 
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) 
    at scala.collection.AbstractTraversable.map(Traversable.scala:105) 
    at sbt.Load$.loadSettings$1(Load.scala:500) 
    at sbt.Load$.sbt$Load$$expand$1(Load.scala:523) 
    at sbt.Load$.loadSettings(Load.scala:528) 
    at sbt.Load$.sbt$Load$$loadSbtFiles$1(Load.scala:464) 
    at sbt.Load$.defaultLoad$1(Load.scala:475) 
    at sbt.Load$.loadTransitive(Load.scala:478) 
    at sbt.Load$.loadProjects$1(Load.scala:418) 
    at sbt.Load$.loadUnit(Load.scala:419) 
    at sbt.Load$$anonfun$15$$anonfun$apply$11.apply(Load.scala:256) 
    at sbt.Load$$anonfun$15$$anonfun$apply$11.apply(Load.scala:256) 
    at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:93) 
    at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:92) 
    at sbt.BuildLoader.apply(BuildLoader.scala:143) 
    at sbt.Load$.loadAll(Load.scala:312) 
    at sbt.Load$.loadURI(Load.scala:264) 
    at sbt.Load$.load(Load.scala:260) 
    at sbt.Load$.load(Load.scala:251) 
    at sbt.Load$.apply(Load.scala:134) 
    at sbt.Load$.defaultLoad(Load.scala:37) 
    at sbt.BuiltinCommands$.doLoadProject(Main.scala:473) 
    at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:467) 
    at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:467) 
    at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:60) 
    at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:60) 
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62) 
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62) 
    at sbt.Command$.process(Command.scala:95) 
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100) 
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100) 
    at sbt.State$$anon$1.process(State.scala:179) 
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100) 
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100) 
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) 
    at sbt.MainLoop$.next(MainLoop.scala:100) 
    at sbt.MainLoop$.run(MainLoop.scala:93) 
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:71) 
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:66) 
    at sbt.Using.apply(Using.scala:25) 
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:66) 
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:49) 
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:33) 
    at sbt.MainLoop$.runLogged(MainLoop.scala:25) 
    at sbt.StandardMain$.runManaged(Main.scala:57) 
    at sbt.xMain.run(Main.scala:29) 
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109) 
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:129) 
    at xsbt.boot.Launch$.run(Launch.scala:109) 
    at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:36) 
    at xsbt.boot.Launch$.launch(Launch.scala:117) 
    at xsbt.boot.Launch$.apply(Launch.scala:19) 
    at xsbt.boot.Boot$.runImpl(Boot.scala:44) 
    at xsbt.boot.Boot$.main(Boot.scala:20) 
    at xsbt.boot.Boot.main(Boot.scala) 
[error] sbt.compiler.EvalException: Type error in expression 
[error] Use 'last' for the full log. 
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? 

Farlo da fuori cartella app ottengo:

$ sbt about 
[info] Loading global plugins from /home/.sbt/0.13/plugins 
[info] Set current project to/(in build file:/home/) 
[info] This is sbt 0.13.5 
[info] The current project is {file:/home/} 0.1-SNAPSHOT 
[info] The current project is built against Scala 2.10.4 
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, EnsimePlugin, com.typesafe.sbt.SbtScalariform 
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.4 
+0

È possibile includere il contenuto di 'project/plugins.sbt' nella domanda? Ripulisci la cache locale con 'sbt 'reload full'' e ricomincia da capo. –

+0

Grazie per il tuo aiuto, ho aggiunto il contenuto al post. La compilazione dopo che 'sbt' reload full'' dà lo stesso messaggio di errore. – TrustyPatches

+0

Puoi fare anche 'sbt about' e includere l'output nella domanda? –

risposta

3

Dopo i commenti, esp. the last one by the OP, credo che il motivo potrebbe essere un plug-in che è stato installato sotto ~/.sbt/0.13/plugins che ha incasinato con le ultime aggiunte a sbt.Project. Ecco perché ho suggerito di rinominare le directory speciali ~/.sbt/0.13 e ~/.sbt/0.13/plugins.

Da Global plugins nella documentazione ufficiale di SBT:

La directory ~/.sbt/0.13/plugins/ viene trattato come un progetto globale plug definizione. È un normale progetto sbt il cui classpath è disponibile per tutte le definizioni di progetto sbt per quell'utente come descritto in precedenza per i plugin per progetto.

C'è stato almeno un caso confermato in cui è successo in passato con un plugin che lo ha fatto - sbt ha rotto con il plugin abilitato, e ha funzionato bene senza di esso. Vedi print not accepted in task definition in SBT 0.13?. Penso di averne visto un altro, ma non riesco a trovarlo ora per indicare qui come un altro riferimento.

0

Per me è stato un altro plug-in che ha modificato la risoluzione del plug-in. Rimosso ora funziona perfettamente.

Problemi correlati