Specs2 в OSX - ошибка: объект specs2 не является членом пакета org - PullRequest
3 голосов
/ 03 апреля 2012

Я пытаюсь запустить некоторый код Scala на моей машине с OSX и продолжаю получать сообщение об ошибке

error: object specs2 is not a member of package org

У меня установлена ​​версия 2.9.1-1 из Scala.Я также использую версию 0.7.7 sbt

Мой файл 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")

Я пробовал несколько разных вещей, но не могу запустить еготест правильно.

Любой совет?

Дайте мне знать, если вам нужна дополнительная информация о настройках на моем компьютере.

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

Решение выглядит просто: пожалуйста, используйте последнюю версию sbt, на данный момент 0.11.2.

Используемая вами версия 0.7.x не знает, как использовать build.sbt , которая была представлена ​​только в sbt 0.9 или около того.

0 голосов
/ 03 апреля 2012

В дополнение к переходу на sbt 0.11.2 я рекомендую перейти к полная конфигурация , хотя автор рекомендует использовать дескриптор .sbt для большинства задач и использовать дескриптор .scala, только если вы не можете достичь чего-либос синтаксисом .sbt или используйте подпроекты (я делаю для всех своих проектов четкое разделение различных частей приложения).

Ниже приведен пример настройки проекта, который я использую для только что начатого проекта, поэтому он толькоимеет зависимость 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))
}
...