未找到scalacheck / scalatest:如何在sbt / scala中添加它?
我已经在我的ubuntu12上安装了
http://typesafe.com/stack/download的typesafe-stack,而不是我创建了一个play项目(g8 typesafehub / play-scala),现在我想在我的项目中添加scalatest或scalacheck.
所以my_app / project / plugins.sbt有以下几行: // The Typesafe repository resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" // Use the Play sbt plugin for Play projects addSbtPlugin("play" % "sbt-plugin" % "2.0.1") 然后我使用addSbtPlugin添加了scalatest: addSbtPlugin("org.scalatest" %% "scalatest" % "2.0.M1" % "test") 现在,当我运行’sbt test’时,它会失败并显示以下消息 [info] Resolving org.scalatest#scalatest;2.0.M1 ... [warn] module not found: org.scalatest#scalatest;2.0.M1 [warn] ==== typesafe-ivy-releases: tried [warn] http://repo.typesafe.com/typesafe/ivy-releases/org.scalatest/scalatest/scala_2.9.1/sbt_0.11.3/2.0.M1/ivys/ivy.xml [warn] ==== local: tried [warn] ~/.ivy2/local/org.scalatest/scalatest/scala_2.9.1/sbt_0.11.3/2.0.M1/ivys/ivy.xml [warn] ==== Typesafe repository: tried [warn] http://repo.typesafe.com/typesafe/releases/org/scalatest/scalatest_2.9.1_0.11.3/2.0.M1/scalatest-2.0.M1.pom [warn] ==== typesafe-ivy-releases: tried [warn] http://repo.typesafe.com/typesafe/ivy- releases/org.scalatest/scalatest/scala_2.9.1/sbt_0.11.3/2.0.M1/ivys/ivy.xml [warn] ==== public: tried [warn] http://repo1.maven.org/maven2/org/scalatest/scalatest_2.9.1_0.11.3/2.0.M1/scalatest-2.0.M1.pom 我不明白:为什么它使用这个http://repo.typesafe.com/typesafe/releases/org/scalatest/scalatest_2.9.1_0.11.3/2.0.M1/scalatest-2.0.M1.pom URL而不是真正的http://repo.typesafe.com/typesafe/releases/org/scalatest/scalatest_2.9.1/2.0.M1/scalatest_2.9.1-2.0.M1.pom? 与scalacheck相同的问题:它还尝试使用特定于sbt-version的artifactId进行下载,而存储库仅具有特定于scala的版本. 我究竟做错了什么?我知道sbt中必须有一个开关,而不是使用sbt-version作为工件URL的一部分? 我也尝试在我的plugins.sbt中使用它 libraryDependencies += "org.scalatest" %% "scalatest" % "2.0.M1" % "test" 但看起来它被sbt完全忽略,scalatest.jar没有出现在类路径中: my_app/test/AppTest.scala:1: object scalatest is not a member of package org [error] import org.scalatest.FunSuite 因为sbt clean&&的输出sbt测试有很多 我使用scala 2.9.1和sbt 0.11.3,试图使用scalatest 2.0.M1和1.8; scalacheck: resolvers ++= Seq( "snapshots" at "http://oss.sonatype.org/content/repositories/snapshots","releases" at "http://oss.sonatype.org/content/repositories/releases" ) libraryDependencies ++= Seq( "org.scalacheck" %% "scalacheck" % "1.9" % "test" ) 使用相同的结果,即它使用不存在的sbtVersion特定POM URL. 我究竟做错了什么?谢谢. 解决方法
Scalatest不是构建插件,而是测试库.你应该像这样添加它:
libraryDependencies += "org.scalatest" %% "scalatest" % "2.0.M1" % "test" 你应该将它添加到项目的基本目录(你称之为“my_app”)的build.sbt,而不是project / plugins.sbt. 它试图找到的URL中有0.11.3的原因是因为构建插件与您正在使用的SBT版本相关联. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |