1 {}}中的新手,通过scala
tutorial。
我正在尝试使用教程中提到的scala
,但收到此错误:
scalatest
我的[error] (*:update) sbt.ResolveException: unresolved dependency: org.scalatest#scalatest;3.0.1: not found
> scalaVersion
[info] 2.10.6
文件如下所示:
build.sbt
同样如上所述here,我已在相应位置创建了name := "tasky"
version := "0.1.0"
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.1"
libraryDependencies += "org.scalatest" % "scalatest" % "3.0.1" % "test"
和global.sbt
文件,其中包含所需的详细信息。但是,我仍然得到错误:
plugins.sbt
解决此问题的任何指示?
答案 0 :(得分:2)
您应该使用%%
而不是单个%
,如下所示。 %%
将工件从scalatest更改为scalatest_2.10,因为项目中使用的scala版本是2.10。
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
您可以使用%%
或明确指定artifact_id,如下所示
libraryDependencies += "org.scalatest" % "scalatest_2.10" % "3.0.1" % "test"
以后推荐使用前一种方法。
<强>解释强>
Scala的次要版本不向后兼容。所以用2.10版本编译的库不能在使用scala 2.11的项目中使用。因此,必须通过为每个版本单独编译来发布库(例如,2.10,2.11和2.12)。
因此所有Scala工件都以scala版本后缀发布。因此,scalatest有一个神器scalatest_2.10,scalatest_2.11和scalatest_2.12。
为了更容易根据您的scala版本在SBT版本中选择正确版本的工件,SBT提供了一个方便的符号%%
,它将通过为您附加scala版本来更改工件ID 。因此,"org.scalatest" %% "scalatest" % "3.0.1"
会在您的构建中动态转换为org.scalatest#scalatest_2.10;3.0.1
。
答案 1 :(得分:0)
如果您使用的是maven repository,那么它应该是
libraryDependencies += "org.scalatest" % "scalatest_2.11" % "3.0.1"
你的scalactic应该是
libraryDependencies += "org.scalactic" % "scalactic_2.11" % "3.0.1"