Веб-плагин SBT: ошибка при получении ScopedKey (Scope (This, Select (ConfigKey (container)), This, This), полный путь к классу) - PullRequest
6 голосов
/ 07 октября 2011

Я пытаюсь настроить веб-проект scala с помощью sbt. У меня следующие настройки.

  • Скала 2.9.0-1
  • сб. 0,11,0
  • xsbt-web-plugin 0.2.1

Проект / plugins.sbt

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

Проект / 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)

}

Когда я пытаюсь запустить sbt с этим файлом сборки, я получаю следующую ошибку.

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

Если я удаляю конфигурацию webSettings из веб-проекта, проект sbt компилируется нормально. Что я сделал не так в этом ???

Заранее спасибо.

1 Ответ

1 голос
/ 08 октября 2011

У меня была точно такая же проблема, когда я пытался использовать webSettings.

Сегодня я нашел решение для Project-DOC: https://github.com/siasia/xsbt-web-plugin/wiki/Deployment-scenarios

Плагин работает, когда я перехожу с webSettings на webAppSettings.

...