【问题标题】:Why is ScalaTest 3.0.1 for 2.12 not resolved?为什么 ScalaTest 3.0.1 for 2.12 没有解决?
【发布时间】:2017-04-13 15:53:19
【问题描述】:

我有一个为 2.11 和 2.12 交叉构建的 scala 项目

crossScalaVersions := Seq("2.11.8", "2.12.0")

我已经为 scalatest 添加了依赖项。

libraryDependencies ++= Seq(
  "org.scalatest"            %% "scalatest"           % "3.0.1"    % "test",
  "org.mockito"              % "mockito-all"          % "1.10.19"  % "test"
)
resolvers ++= Seq(
  "Akka"       at    "http://akka.io/repository/",
  "Sonatype"   at    "http://oss.sonatype.org/content/repositories/releases"
)

我可以看到 2.12 版本是 published 是从 3.0.0 开始的最新版本。但是 SBT 无法解决它。

[warn] ==== sbt-releases-repo: tried
[warn]   http://repo.typesafe.com/typesafe/ivy-releases/org.scalatest/scalatest_2.12/3.0.1/ivys/ivy.xml
[warn] ==== sbt-plugins-repo: tried
[warn]   http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.scalatest/scalatest_2.12/3.0.1/ivys/ivy.xml
[warn] ==== my-ivy-proxy-releases: tried
[warn]   http://artifactory.internal.com/ivy-releases/org.scalatest/scalatest_2.12/3.0.1/ivys/ivy.xml
[warn] ==== my-maven-proxy-releases: tried
[warn]   http://artifactory.internal.com/maven-releases/org/scalatest/scalatest_2.12/3.0.1/scalatest_2.12-3.0.1.pom [warn] ==== Akka: tried
[warn]   http://akka.io/repository/org/scalatest/scalatest_2.12/3.0.1/scalatest_2.12-3.0.1.pom
[warn] ==== Sonatype: tried
[warn]   http://oss.sonatype.org/content/repositories/releases/org/scalatest/scalatest_2.12/3.0.1/scalatest_2.12-3.0.1.pom [info] Resolving jline#jline;2.14.1 ...

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::      UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.scalatest#scalatest_2.12;3.0.1: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

任何指向这里缺少什么的指针?

更新: 添加我的 ~/.sbt/repositories 设置

[存储库]

local  
my-ivy-proxy-releases: http://artifactory.internal.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
my-maven-proxy-releases: http://artifactory.internal.com/maven-releases/

【问题讨论】:

  • 根据您的日志,SBT 不会搜索对 Maven Central 的依赖(可能是因为您的全局 SBT 配置更改了默认解析器?)。您需要将 Maven Central 添加为解析器,或者确保可以从您组织的一个存储库(我猜是 artifactory.internal.com/maven-releases)解析 Scalatest 依赖项。
  • 你是对的。当我将 maven central 添加到 build.sbt 时它可以工作。我已将 ~/.sbt/repositories 设置为指向工件。这是最近的变化。我认为神器 maven-proxy-releases 默认会查看 Maven Central。我们的人工配置有什么问题吗??
  • 用我的存储库文件更新了帖子
  • 我很确定要做的第一件事就是检查你的工件配置中的“maven-releases”repo。我的理解是,您需要一个指向 Maven Central 的远程仓库或一个聚合多个存储库的虚拟仓库,包括再次指向 Maven Central 的远程仓库。但我不是神器专家……
  • 是的。我要和我们的工件管理员谈谈。

标签: scala sbt scalatest


【解决方案1】:

根据您的日志,SBT 不会搜索对 Maven Central 的依赖,这是获取 Scalatest 最直接的地方。这不是默认 SBT 配置的问题(因为 Maven Central 是默认解析器之一);但在这里,您有一个特定的 SBT 配置,可以改为使用您组织的内部存储库(http://artifactory.internal.com)。

您需要在您的 SBT 解析器中添加 Maven Central(但从长远来看,这可能不是您想要的)或与您的 Artifactory 管理员核实 artifactory.internal.com/maven-releases 存储库是否应该代理 Maven Central 依赖项,以及是否配置正确。我认为他们还应该能够从 Artifactory 导出指向您需要使用的存储库的 Maven 配置文件:然后您可以将其中的 URL 复制并粘贴到您的 SBT 配置文件中。

【讨论】:

    猜你喜欢
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 2015-05-31
    • 2016-07-06
    • 2019-01-25
    相关资源
    最近更新 更多