【问题标题】:How to fix sbt reporting "Error wrapping InputStream in GZIPInputStream: java.io.EOFException"?如何修复 sbt 报告“在 GZIPInputStream 中包装 InputStream 时出错:java.io.EOFException”?
【发布时间】:2013-12-20 03:41:28
【问题描述】:

在空目录中运行sbt 命令时,它一直失败并出现以下异常:

$ sbt
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
Error wrapping InputStream in GZIPInputStream: java.io.EOFException
    at sbt.ErrorHandling$.translate(ErrorHandling.scala:11)
    at sbt.WrapUsing.open(Using.scala:36)
    at sbt.Using.apply(Using.scala:24)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:778)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:777)
    at sbt.Using.apply(Using.scala:25)
    at sbt.IO$.gzipFileIn(IO.scala:777)
    at sbt.Sync$.readUncaught(Sync.scala:88)
    at sbt.Sync$.readInfo(Sync.scala:84)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:29)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:23)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:770)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:766)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:35)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.io.EOFException
    at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:264)
    at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:254)
    at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:163)
    at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:78)
    at sbt.Using$$anonfun$gzipInputStream$1.apply(Using.scala:91)
    at sbt.Using$$anonfun$gzipInputStream$1.apply(Using.scala:91)
    at sbt.Using$$anon$1.openImpl(Using.scala:56)
    at sbt.WrapUsing$$anonfun$open$2.apply(Using.scala:36)
    at sbt.ErrorHandling$.translate(ErrorHandling.scala:11)
    at sbt.WrapUsing.open(Using.scala:36)
    at sbt.Using.apply(Using.scala:24)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:778)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:777)
    at sbt.Using.apply(Using.scala:25)
    at sbt.IO$.gzipFileIn(IO.scala:777)
    at sbt.Sync$.readUncaught(Sync.scala:88)
    at sbt.Sync$.readInfo(Sync.scala:84)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:29)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:23)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:770)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:766)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:35)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
[error] (compile:copyResources) Error wrapping InputStream in GZIPInputStream: java.io.EOFException
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q

问题的根本原因是什么?

【问题讨论】:

    标签: sbt sbt-assembly


    【解决方案1】:

    这个异常似乎是由于本地 repo 的一些问题造成的。清理后,例如从~/.sbt 目录中删除target 目录现在可以正常工作了。

    jacek:~/.sbt
    $ find . -name target | xargs rm -rf
    
    jacek:~/sandbox/stackoverflow/testaaa
    $ sbt
    [info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
    [info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
    [info] Resolving org.fusesource.jansi#jansi;1.4 ...
    [info] Done updating.
    [info] Set current project to testaaa (in build file:/Users/jacek/sandbox/stackoverflow/testaaa/)
    [testaaa]>
    

    我在 play-framework 论坛的帖子 [2.1.1] SBT: InputStream in GZIPInputStream: java.io.EOFException 中找到了解决方案。


    我还被告知,在删除项目主目录中的所有 target 目录后问题就消失了,例如target, project/target.

    jacek:my-project-path
    $ find . -name target | xargs rm -rf
    

    【讨论】:

    • 说批处理语言:for /d /r 。 %d in (target) do @if exists "%d" rd /s/q "%d"
    【解决方案2】:

    进入项目目录

    $ cd my-spark-app
    $ rm -rf target
    $ cd project 
    $ rm -rf target project
    

    现在开始 sbt

    $sbt 
    

    【讨论】:

      【解决方案3】:

      您可以在您的目录上运行sbt clean(以删除target/src 中可能之前创建的任何文件),现在尝试运行sbt。 尝试通过运行 sbt -Dsbt.version=0.13.15 new https://github.com/akka/akka-http-scala-seed.g8 创建 Akka HTTP 种子项目时遇到此问题。我的错误是运行命令时我不在一个空目录中。 有关错误的更多信息可以找到here

      【讨论】:

        【解决方案4】:

        第一步:你需要在 .bash_profile 中添加 sbt 路径,以防 windows 需要添加环境变量,然后转到终端并运行 ./sbt 文件。

        第 2 步:从项目目录中删除目标文件夹。

        第 3 步:从 intellijID 终端运行 sbt 命令“sbt clean”,然后“activator clean”,然后 activator update”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-12-05
          • 1970-01-01
          • 2010-11-23
          • 1970-01-01
          • 2020-09-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多