3

我正在尝试在我的 OSX 机器上运行一些 Scala 代码并不断收到错误消息

error: object specs2 is not a member of package org

我安装了 Scala 的 2.9.1-1 版本。我也在使用 sbt 的 0.7.7 版本

我的 build.sbt 文件看起来像这样

name := "Comp-338-Web-App"

version := "1.0"

scalaVersion := "2.9.1"

scalacOptions += "-deprecation"

libraryDependencies ++= Seq(
  "junit" % "junit" % "4.7",
  "org.specs2" %% "specs2" % "1.8.2" % "test",
  "org.mockito" % "mockito-all" % "1.9.0",
  "org.hamcrest" % "hamcrest-all" % "1.1"
)

resolvers ++= Seq("snapshots" at "http://oss.sonatype.org/content/repositories/snapshots",
              "releases"  at "http://oss.sonatype.org/content/repositories/releases")

我尝试了很多不同的东西,但无法让它正确运行测试。

有什么建议吗?

如果您需要有关我的计算机设置的更多信息,请告诉我。

4

2 回答 2

3

解决方案看起来很简单:请使用 sbt 的最新版本,目前为 0.11.2。

您使用的 0.7.x 版本不知道如何使用build.sbt,它只在 sbt 0.9 左右引入。

于 2012-04-03T07:38:01.063 回答
0

除了迁移到 sbt 0.11.2 之外,我建议进行完整配置,即使作者建议对大多数任务使用 .sbt 描述符,并且仅在您无法使用 .sbt 语法或使用子项目时才使用 .scala 描述符(我为我所有的项目做清楚地分开应用程序的不同部分)。

下面是我用于刚刚开始的项目的示例项目设置,因此它只有 specs2 依赖项:

import sbt._
import Keys._

object BuildSettings {
  val buildOrganization = "net.batyuk"
  val buildScalaVersion = "2.9.1"
  val buildVersion = "0.1"

  val buildSettings = Defaults.defaultSettings ++ Seq(organization := buildOrganization,
    scalaVersion := buildScalaVersion,
    version := buildVersion)
}

object Resolvers {
  val typesafeRepo = "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
  val sonatypeRepo = "Sonatype Releases"  at "http://oss.sonatype.org/content/repositories/releases"

  val scalaResolvers = Seq(typesafeRepo, sonatypeRepo)
}

object Dependencies {
  val specs2Version = "1.8.2"

  val specs2 = "org.specs2" %% "specs2" % specs2Version
}

object IdefixBuild extends Build {

  import Resolvers._
  import Dependencies._
  import BuildSettings._

  val commonDeps = Seq(specs2)

  lazy val idefix = Project("idefix", file("."), settings = buildSettings ++ Seq(resolvers := scalaResolvers,
                                                                                     libraryDependencies := commonDeps))
}
于 2012-04-03T10:32:56.950 回答