scala sbt无法下载启动程序

slmsl1lt  于 2022-11-23  发布在  Scala
关注(0)|答案(4)|浏览(333)

当我试图在终端上运行“sbt”时,它显示如下:

downloading sbt launcher 1.5.5
cat: /home/knoldus/.cache/sbt/boot/sbt-launch/1.5.5/sbt-launch-1.5.5.jar.sha1: No such file or directory
shasum: standard input: no properly formatted SHA checksum lines found
failed to download launcher jar: https://repo1.maven.org/maven2/org/scala-sbt/sbt-launch/1.5.5/sbt-launch-1.5.5.jar (shasum mismatch)
5tmbdcev

5tmbdcev1#

我有同样的错误,我只是移动到目录和下载文件丢失手动

cd  ~/.cache/sbt/boot/sbt-launch/1.5.5/
 wget https://repo1.maven.org/maven2/org/scala-sbt/sbt-launch/1.5.5/sbt-launch-1.5.5.jar

然后我跑

sbt package
mutmk8jj

mutmk8jj2#

您需要安装curl。它在sbt启动器shell脚本中用于下载错误消息中提到的文件sbt-launch-1.5.5.jar.sha1。如果缺少curl,将导致您观察到的错误。

e5njpo68

e5njpo683#

从官方网站下载的SBT包在<sbt-install-folder>/bin目录下包含sbt-launch.jar,SBT启动器sbt是一个shell脚本,它会搜索这个JAR,如果没有找到这个JAR,它会尝试从网上下载,如果机器在代理后面,它会失败,所以,当这种情况发生时,第一件事是检查sbt文件的位置以及sbt-launch.jar是否存在。如果JAR文件丢失了,可以从官方的SBT发行版中复制它,即使机器在代理后面或者离线。

weylhg0b

weylhg0b4#

这个问题显然是命令curl --output无法打开输出文件。

download_url () {
  local url="$1"
  local jar="$2"
  mkdir -p $(dirname "$jar") && {
    if command -v curl > /dev/null; then
      curl -L "$url" --output "$jar"
    elif command -v wget > /dev/null; then
      wget -O "$jar" "$url"
  fi
} && [[ -f "$jar" ]]

curl行更改为:

curl -L "$url" > "$jar"

为我修复了这个问题。我不知道curl的根本问题是什么,但是当安装aptsnap时都发生了这个问题。

相关问题