为啥 sbt 报告缺少 Scala 2.10.2 的库(自 8 月 1 日起)?
Posted
技术标签:
【中文标题】为啥 sbt 报告缺少 Scala 2.10.2 的库(自 8 月 1 日起)?【英文标题】:Why does sbt report missing libraries for Scala 2.10.2 (since Aug, 1th)?为什么 sbt 报告缺少 Scala 2.10.2 的库(自 8 月 1 日起)? 【发布时间】:2014-09-25 13:40:37 【问题描述】:我有许多 Play 2.2.x 应用程序已经构建了几个月,没有出现任何问题。但是,从 2014 年 8 月 1 日开始,我开始收到以下警告和错误:
获取 org.scala-sbt sbt 0.13.0 ...
:: 问题摘要 :: :::: 未找到警告模块: org.scala-lang#scala-library;2.10.2
==== 本地:尝试过
/Users/dpope/.ivy2/local/org.scala-lang/scala-library/2.10.2/ivys/ivy.xml
==== typesafe-ivy-releases:尝试过
repo.typesafe.com/typesafe/ivy-releases/org.scala-lang/scala-library/2.10.2/ivys/ivy.xml
==== Maven 中心:尝试过
repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.2/scala-library-2.10.2.pom
module not found: org.scala-lang#scala-compiler;2.10.2
==== 本地:尝试过
/Users/dpope/.ivy2/local/org.scala-lang/scala-compiler/2.10.2/ivys/ivy.xml
==== typesafe-ivy-releases:尝试过
repo.typesafe.com/typesafe/ivy-releases/org.scala-lang/scala-compiler/2.10.2/ivys/ivy.xml
==== Maven 中心:尝试过
repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.pom
:::::::::::::::::::::::::::::::::::::::::::::: :: UNRESOLVED DEPENDENCIES :: :::::::::::::::::::::::::::::::::::::::::::::: :: org.scala-lang#scala-library;2.10.2: not found :: org.scala-lang#scala-compiler;2.10.2: not found ::::::::::::::::::::::::::::::::::::::::::::::
:: 使用详细或调试消息级别获取更多详细信息未解决 依赖项:org.scala-lang#scala-library;2.10.2:未找到未解决 依赖项:org.scala-lang#scala-compiler;2.10.2:未找到错误 在 sbt 执行期间:检索所需库时出错(请参阅 /Users/dpope/.sbt/boot/update.log 完整日志)错误:无法 检索 sbt 0.13.0
(我从上面的网址中删除了 http:)
我的构建命令是:
java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar /opt/sbt/sbt-launch-0.13.0.jar -Dsbt.log.noformat=true clean compile test dist
同样,这几个月来一直运行良好,但在 2014 年 8 月 1 日才开始出现问题。
通过 update.log,我看到 2 个文件有 404。显然,既然有 404,为什么工作失败是有道理的。
有人有什么解决方法吗?由于这是在播放前构建时发生的,因此我似乎无法设置任何配置。我无法通过我们构建服务器上的 ~/.sbt/repositories 管理 repos,因为它们是短暂的。
编辑 8 月 2 日 10:40a EDT
又挖了一点,看起来像
http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compile/0.13.0/ivys/ivy.xml
依赖于
<override org="org.scala-lang" module="scala-library" matcher="exact" rev="2.10.2"/>
<override org="org.scala-lang" module="scala-compiler" matcher="exact" rev="2.10.2"/>
但那些不再存在于任何 ivy 存储库中。
【问题讨论】:
希望这应该很快得到解决,但在那之前:scala 2.10.2 仍然可以在 sonatype 发布 repo 中使用。将Resolvers += Resolver.sonatypeRepo("releases")
添加到/project/plugins.sbt
(可能还有/build.sbt
,取决于您的项目)应该可以解决这个问题。
刚发现也有报道,但请注意 resolvers
的大小写 - 它以小写 r
开头。
@JacekLaskowski 哦,对,谢谢。我编辑了票。
【参考方案1】:
我刚刚发现两个地方报告和解决了不同的问题。
更改解析器以包含 Sonatype Releases
在SI-8772 Builds relying on Scala 2.10.2 artifact in Maven are failing 中有描述,解决方案是将以下内容添加到您的构建中:
resolvers += Resolver.sonatypeRepo("releases")
手动下载所需文件
Apache Spark users mailing list 中也报告了缺少 Scala 2.10.2 库的问题,解决方案是手动下载所需文件,如下所示:
$ cd ~/.ivy2/cache/org.scala-lang/
$ mkdir -p scala-library && cd scala-library
$ wget https://raw.githubusercontent.com/peterklipfel/scala_koans/master/ivyrepo/cache/org.scala-lang/scala-library/ivy-2.10.2.xml
$ wget https://raw.githubusercontent.com/peterklipfel/scala_koans/master/ivyrepo/cache/org.scala-lang/scala-library/ivydata-2.10.2.properties
$ mkdir -p jars && cd jars
$ wget https://github.com/peterklipfel/scala_koans/raw/master/ivyrepo/cache/org.scala-lang/scala-library/jars/scala-library-2.10.2.jar
归结为将丢失的文件从另一个存储库下载到您的 Ivy2 本地缓存。对scala-compiler
做同样的事情,你应该会没事的。
【讨论】:
以上是关于为啥 sbt 报告缺少 Scala 2.10.2 的库(自 8 月 1 日起)?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 sbt 为 import scala.swing 给出“对象 swing 不是包 scala 的成员”?
为啥 sbt 因 sbt.ResolveException 失败:Spark 2.0.0 和 Scala 2.9.1 的未解决依赖关系?
由于缺少 Ivy 模块,无法创建 IntelliJ Scala 项目