SBT ScalaTest依赖项解析

SBT ScalaTest依赖项解析,sbt,Sbt,在build.sbt中 resolvers += "Repo1" at "http://oss.sonatype.org/content/repositories/releases" resolvers += "Repo2" at "http://repo1.maven.org/maven2" libraryDependencies ++= Seq( "org.specs2" %% "specs2" % "2.3.11" % "test", "org.scalatest" %% "

build.sbt

resolvers += "Repo1" at "http://oss.sonatype.org/content/repositories/releases"

resolvers += "Repo2" at "http://repo1.maven.org/maven2"


libraryDependencies ++= Seq(
  "org.specs2" %% "specs2" % "2.3.11" % "test",
  "org.scalatest" %% "scalatest_2.11" % "2.1.5" % "test"
)


scalacOptions in Test ++= Seq("-Yrangepos")

// Read here for optional dependencies:
// http://etorreborre.github.io/specs2/guide/org.specs2.guide.Runners.html#Dependencies

resolvers ++= Seq("snapshots", "releases").map(Resolver.sonatypeRepo)
症状:

  • Specs2
    可解析,不可解析
org.scalatest#scalatest_2.11_2.10;2.1.5:未找到

  • 使用
    Maven
    ,使用相同的存储库-一切都能完美工作
问题:

  • sbt有什么问题,为什么它总是抱怨
    • 你应该

      libraryDependencies ++= Seq(
        "org.specs2" %% "specs2" % "2.3.11" % "test",
        "org.scalatest" %% "scalatest" % "2.1.5" % "test"
      )
      
      在您的
      库依赖项中
      (请注意删除的
      \u 2.11

      原因是,
      %%
      将根据您使用的Scala版本为您添加正确的后缀。您可以在中阅读更多内容

      如果使用groupID%%artifactID%修订版而不是groupID% artifactID%修订(差异为修订后的双%% sbt将把项目的Scala版本添加到工件中 名称这只是一条捷径

      其原因是通过SBT文档发布约定:

      用于指示Scala版本的底层机制 库是根据要附加到 图书馆的名字。对于Scala 2.10.0及更高版本,二进制版本为 用过。例如,对于变量,dispatch变为dispatch_2.8.1 根据Scala 2.8.1和dispatch_2.10编译 2.10.0、2.10.0-M1或任何2.10.x版本。这种相当简单的方法允许与Maven、Ant和其他build的用户进行互操作 工具

      您自己添加了一个Scala版本,SBT追加了一个额外的版本,因此您的工件名称变成了
      scalatest_2.11_2.10
      ,它不存在-因此出现了错误。

      您应该有

      libraryDependencies ++= Seq(
        "org.specs2" %% "specs2" % "2.3.11" % "test",
        "org.scalatest" %% "scalatest" % "2.1.5" % "test"
      )
      
      在您的
      库依赖项中
      (请注意删除的
      \u 2.11

      原因是,
      %%
      将根据您使用的Scala版本为您添加正确的后缀。您可以在中阅读更多内容

      如果使用groupID%%artifactID%修订版而不是groupID% artifactID%修订(差异为修订后的双%% sbt将把项目的Scala版本添加到工件中 名称这只是一条捷径

      其原因是通过SBT文档发布约定:

      用于指示Scala版本的底层机制 库是根据要附加到 图书馆的名字。对于Scala 2.10.0及更高版本,二进制版本为 用过。例如,对于变量,dispatch变为dispatch_2.8.1 根据Scala 2.8.1和dispatch_2.10编译 2.10.0、2.10.0-M1或任何2.10.x版本。这种相当简单的方法允许与Maven、Ant和其他build的用户进行互操作 工具

      您自己添加了一个Scala版本,SBT追加了一个额外的版本,因此您的工件名称变成了
      scalatest_2.11_2.10
      ,它不存在-因此出现了错误