【问题标题】:Why does sbt get stuck while downloading Scala jars from repo1?为什么从 repo1 下载 Scala jar 时 sbt 会卡住?
【发布时间】:2014-04-30 01:52:51
【问题描述】:

我使用的是 Ubuntu 13.04 和 sbt 0.12.4。

我是 sbt/Scala 的新手。这是我在我的机器上安装的 Scala 版本列表:

  • Scala 2.9.2 -- 由sbt安装,sbt选择的默认版本
  • Scala 2.10.2 -- 自己安装,位于/usr/xxx/share/scala-2.10.2
  • Scala 2.10.4 -- 随 Eclipse 一起提供,位于 ~/eclipse/osgi/xx/buddle/xxx

我想用build.sbt 构建一个说它需要2.10.2 版本的sbt 项目。在我输入sbt console 后,它看起来像:

Getting Scala 2.10.2 ...
downloading http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.jar ...

...然后卡在这里。我等了四个小时,无法通过这个。如何修复它并更改 sbt 使用的默认 Scala 版本?

【问题讨论】:

  • 你连接到网络了吗?你试过wget http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.jar 吗?我遇到了同样的问题,无法访问mirrors.ibiblio.org。我的解决方案是从其他服务器下载。
  • 谢谢,我已经手动下载了,应该放在哪里?
  • 把它放到~/.sbt/boot/scala-2.10.2/lib/scala-compiler.jar
  • 应该再复制几个文件...

标签: scala sbt


【解决方案1】:

“更改 sbt 使用的默认 scala 版本” - 你不能(或者如果你设法这样做,你迟早会遇到针对特定插件编译的问题通过addSbtPlugin 组合 sbt 和 Scala 版本)。

但是,如果您需要更改构建(以及您的工件)正在使用的 Scala 版本,那么scalaVersion 是您的解决方案。看来您已经完成了 “build.sbt 说它需要版本 2.10.2”

当你启动sbt 时,你实际上使用了一个 sbt 启动器,它从在线存储库中获取必要的组件并启动 sbt。为此,启动器需要下载 sbt 本身和 Scala jar。它们存储在 sbt 内部使用的相应 Scala 版本下的~/.sbt/boot 中(因为它毕竟是一个 Scala 应用程序)。

您可以为 sbt 下载必要的模块并使其正常运行,但您的项目可能需要 ~/.ivy2 本地存储库中尚未包含的依赖项,并且需要联机。您必须手动下载依赖项和依赖项的依赖项。这肯定需要一些时间,虽然可能,但我建议从可以访问存储库的机器上复制目录。

【讨论】:

    【解决方案2】:

    Mac OSX Yosemite 上的相同行为完全缓慢且卡住

    scala-compiler-2.10.4.jar.part

    需要手动d/l它到

    /Users/katopz/.ivy2/cache/org.scala-lang/scala-compiler

    卷曲

    $ curl -o scala-compiler-2.10.4.jar http://mirrors.ibiblio.org/maven2/org/scala-lang/scala-compiler/2.10.4/scala-compiler-2.10.4.jar

    现在卡在了 scala-reflect-2.10.4.jar ;p

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 2020-06-22
      • 2018-02-16
      • 2019-11-23
      • 2018-08-06
      • 1970-01-01
      • 2012-01-08
      • 2015-01-03
      相关资源
      最近更新 更多