2011-10-07 7 views
6

Sto provando a configurare il progetto scala web con sbt. Ho le seguenti impostazioni.Plugin Web SBT: errore durante l'acquisizione di ScopedKey (Scope (Questo, Seleziona (ConfigKey (contenitore)), This, This), full class class)

  • Scala 2.9.0-1
  • sbt 0.11.0
  • xsbt-web-plugin 0.2.1

progetto/plugins.sbt

libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.1")) 

progetto/TaskTrackerBuild.scala

import sbt._ 
import com.github.siasia._ 
import WebPlugin._ 
import PluginKeys._ 
import Keys._ 
/** 
* Main sbt build file for the task-tracker project. 
    * 
*/ 
object TicketingCoreProject extends Build { 
    val ticketingVersion = "1.0.0-SNAPSHOT" 
    val Organization = "org.sansoft" 
    val ScalaVersion = "2.9.0-1" 

    val jodaTime = "joda-time" % "joda-time" % "1.6" 
    val scalaTime = "org.scala-tools.time" % "time_2.8.0" % "0.2" 
    val casbah = "com.mongodb.casbah" % "casbah_2.9.0-1" % "2.1.5.0" 
    val Slf4jLog4jDep = "org.slf4j" % "slf4j-log4j12" % "1.6.1" 
    val ScalaCheckDep = "org.scala-tools.testing" %% "scalacheck" % "1.9" % "test" 
    val JUnitDep = "junit" % "junit" % "4.8.2" % "test" 
    val scalaTesting = "org.scala-tools.testing" %% "specs" % "1.6.8" % "test" 
    //val scctSbt = "ch.craven" %% "scct-plugin" % "0.2" 
    val vaadin = "com.vaadin" % "vaadin" % "6.7.0" 

    val jettyWebApp = "org.eclipse.jetty" % "jetty-webapp" % "7.3.0.v20110203" % "container" 
    val jettyPlus = "org.eclipse.jetty" % "jetty-plus" % "7.3.0.v20110203" % "container" 

    val repositories = Seq(
    ScalaToolsSnapshots, 
    "typesafe releases" at "http://repo.typesafe.com/typesafe/releases", 
    "typesafe snapshots" at "http://repo.typesafe.com/typesafe/snapshots", 
    "scct-repo" at "http://mtkopone.github.com/scct/maven-repo") 

    def publishToRepository = Some(Resolver.file("Local Maven Repository", Path.userHome/".m2"/"repository" asFile)) 

    lazy val baseSettings = Defaults.defaultSettings ++ Seq(
    version := ticketingVersion, 
    organization := Organization, 
    scalaVersion := ScalaVersion, 
    publishMavenStyle := true, 
    publishTo := publishToRepository, 
    resolvers ++= repositories, 
    checksums := Nil 
) 

    lazy val parent = Project("taskTrackerParent", file("."), 
    settings = baseSettings ++ Seq(
     name := "task-tracker-parent" 
    )) 

    lazy val core = Project("core", file("core"), 
    settings = baseSettings ++ Seq(
     name := "core", 
     libraryDependencies ++= Seq(
     jodaTime, 
     scalaTime, 
     scalaTesting, 
     ScalaCheckDep, 
     casbah, 
     jodaTime, 
    scalaTime))) 

    lazy val web = Project("web", file("web"), 
    settings = baseSettings ++ webSettings ++ Seq(
     name := "web", 
     libraryDependencies ++= Seq(
     jodaTime, 
     scalaTime, 
     scalaTesting, 
     ScalaCheckDep, 
     casbah, 
    jodaTime, 
    scalaTime, 
     vaadin, 
     jettyWebApp, 
     jettyPlus))) dependsOn(core) 

} 

Quando provo ad avviare sbt con questo file di build, ricevo un errore successivo.

[error] Error getting ScopedKey(Scope(This,Select(ConfigKey(container)),This,This),full-classpath) 
[error] Use 'last' for the full log. 

Se rimuovo la configurazione webSettings dal progetto web, il progetto sbt viene compilato correttamente. Cosa ho fatto di sbagliato in questo ???

Grazie in anticipo.

+0

Pensavo fosse solo una soluzione alternativa, hai considerato di spostare la dipendenza 'xsbt-web-plugin' dalla configurazione completa della compilazione (' project/TaskTrackerBuild.scala')? Sono in dubbio, è un buon modo (per non dire, sicuro) di coesistere con configurazioni corte e complete. –

+1

In realtà c'era un bug in xsbt-web-plugin [https://github.com/siasia/xsbt-web-plugin/issues/40](https://github.com/siasia/xsbt-web-plugin/temi/40). Ora è stato corretto e la mia build di sbt sta funzionando bene. –

risposta