"object github is not a member of package com" WeKanban2 示例项目在 Scala 中的操作手册


我是Scala

的新手,所以从阅读"Scala in Action"一书2013年开始。但是我无法构建普通的sbt WeKanban2项目。例如,我使用较新版本的scala和sbt。运行 sbt 时出现错误:

error: object github is not a member of package com import com.github.siasia.WebPlugin._

我的构建属性:

//was sbt.version=0.12.0
sbt.version=0.13.7

插件.sbt

// was libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-eb-plugin"  (v+"-0.2.11.1")) 
addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "0.7.0")

build.sbt

import com.github.siasia.WebPlugin._
name := "weKanban"
organization := "scalainaction"
version := "0.2"
//was: scalaVersion := "2.10.0"
scalaVersion := "2.11.4"
scalacOptions ++= Seq("-unchecked", "-deprecation")
resolvers ++= Seq(
"Scala-Tools Maven2 Releases Repository" at "http://scala-tools.org/repo-releases",
"Scala-Tools Maven2 Snapshots Repository" at "http://scala-tools.org/repo-snapshots"
)
libraryDependencies ++= Seq(
  "org.scalaz" %% "scalaz-core" % scalazVersion,
  "org.scalaz" %% "scalaz-http" % scalazVersion,
  "org.eclipse.jetty" % "jetty-servlet" % jettyVersion % "container",
  "org.eclipse.jetty" % "jetty-webapp" % jettyVersion % "test, container",
  "org.eclipse.jetty" % "jetty-server" % jettyVersion % "container",
  "com.h2database" % "h2" % "1.2.137",
  "org.squeryl" % "squeryl_2.10" % "0.9.5-6"
)
seq(webSettings :_*)

build.scala

import sbt._
import Keys._
object H2TaskManager {
  var process: Option[Process] = None
  lazy val H2 = config("h2") extend(Compile)
  val startH2 = TaskKey[Unit]("start", "Starts H2 database")
  val startH2Task = startH2 in H2 <<= (fullClasspath in Compile) map { cp =>
      startDatabase(cp.map(_.data).map(_.getAbsolutePath()).filter(_.contains("h2database")))}         
      def startDatabase(paths: Seq[String]) = {
        process match {
          case None =>
            val cp = paths.mkString(System.getProperty("path.seperator"))
            val command = "java -cp " + cp + " org.h2.tools.Server"
            println("Starting Database with command: " + command)
            process = Some(Process(command).run())
            println("Database started ! ")
          case Some(_) =>
            println("H2 Database already started")
        }
      }     
  val stopH2 = TaskKey[Unit]("stop", "Stops H2 database")
  val stopH2Task = stopH2 in H2 :={
    process match {
      case None => println("Database already stopped")
      case Some(_) =>
        println("Stopping database...")
        process.foreach{_.destroy()}
        process = None
        println("Database stopped...")
    }
  }  
}
object MainBuild extends Build {
 import H2TaskManager._
 lazy val scalazVersion = "6.0.3"
 lazy val jettyVersion = "7.3.0.v20110203"
 lazy val wekanban = Project(
   "wekanban",
   file(".")) settings(startH2Task, stopH2Task)}

我应该怎么做才能修复此错误?我应该怎么做才能在调试模式下从 Idea 14 启动应用程序?

您的导入

import com.github.siasia.WebPlugin._

找不到路径 GitHub 及以下。在你的插件.sbt中,你写道:

// was libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-eb-plugin"  (v+"-0.2.11.1")) 
addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "0.7.0")

github-path可能存在于outcommented com.github.siasia.xsbt-eb-plugin中。但是,com.earldouglas.xsbt-web-plugin只有路径com.earldouglas.xwp。您应该检查那里的任何类(https://github.com/earldouglas/xsbt-web-plugin/tree/master/src/main/scala)是否类似于您需要导入的内容。

可能与此包不完全相关,但类似。图书馆在sbt,一切看起来都还行。但是我仍然无法构建项目,所以我去我的$HOME/.ivy2/cache找到依赖项目录并将其删除,然后返回$PROJECT_HOME/并执行sbt build

最新更新