【问题标题】:sbt 0.13.5 "URI has an authority component" errors whilst resolving dependencies for a Play 2.3.0 projectsbt 0.13.5“URI 具有权限组件”错误,同时解决 Play 2.3.0 项目的依赖关系
【发布时间】:2014-06-03 18:46:03
【问题描述】:

在将我的项目升级到 Play Framework 2.3.0(结果是 sbt 0.13.5)后,当 sbt 首次尝试在全新 Debian 安装上解决依赖关系时,我遇到了多个“URI 具有权限组件”错误.例如:

[error] (*:update) sbt.ResolveException: unresolved dependency: org.slf4j#slf4j-api;1.7.6: several problems occurred while resolving dependency: org.slf4j#slf4j-api;1.7.6 {compile=[compile(*), master(*)], runtime=[runtime(*)]}:
[error]     several problems occurred while resolving dependency: org.slf4j#slf4j-parent;1.7.6 {}:
[error]     URI has an authority component
[error]     URI has an authority component
[error]     URI has an authority component
[error]     URI has an authority component
[error]     URI has an authority component
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:217)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:126)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:125)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:115)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:115)
    at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:103)
    at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:48)
    at sbt.IvySbt$$anon$3.call(Ivy.scala:57)
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:98)
    at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:81)
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:102)
    at xsbt.boot.Using$.withResource(Using.scala:11)
    at xsbt.boot.Using$.apply(Using.scala:10)
    at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:62)
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:52)
    at xsbt.boot.Locks$.apply0(Locks.scala:31)
    at xsbt.boot.Locks$.apply(Locks.scala:28)
    at sbt.IvySbt.withDefaultLogger(Ivy.scala:57)
    at sbt.IvySbt.withIvy(Ivy.scala:98)
    at sbt.IvySbt.withIvy(Ivy.scala:94)
    at sbt.IvySbt$Module.withModule(Ivy.scala:115)
    at sbt.IvyActions$.update(IvyActions.scala:125)
    at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1223)
    at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1221)
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$74.apply(Defaults.scala:1244)
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$74.apply(Defaults.scala:1242)
    at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:35)
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1246)
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1241)
    at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:45)
    at sbt.Classpaths$.cachedUpdate(Defaults.scala:1249)
    at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1214)
    at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1192)
    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:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

这似乎是只有 *-parent 依赖项的问题,并且没有在早期版本的 play 和 sbt 中表现出来。我能够在三个不同位置的三个独立服务器上重现,既使用提供的 .deb 又手动放置启动器 jar。

任何指导将不胜感激。

【问题讨论】:

  • 是的,我之前看到过,这个问题似乎与 sbt 如何尝试从存储库中检索某些文件有关。已使用堆栈跟踪更新了问题。
  • 你是使用 sbt 还是 activator 来执行构建?

标签: playframework sbt playframework-2.3


【解决方案1】:

在我的情况下,问题与配置的解析器之一有关:

  val projectResolvers = Seq[Resolver](
    "Local Maven Repository" at "file://"+Path.userHome.asFile.toURI.toURL+".m2/repository/",
    ...
  )

查看最后一条命令的详细信息(失败并出现错误)后,我在解析器列表中看到以下内容:

[debug]     Local Maven Repository: file://file:/Users/aldo/.m2/repository

删除硬编码的“file://”解决了这个问题:

  val projectResolvers = Seq[Resolver](
    "Local Maven Repository" at ""+Path.userHome.asFile.toURI.toURL+".m2/repository/",
    ...
  )

【讨论】:

    猜你喜欢
    • 2015-08-22
    • 2014-01-12
    • 2015-11-04
    • 2018-08-18
    • 2016-06-04
    • 2014-12-18
    • 2012-03-30
    • 2016-10-06
    • 1970-01-01
    相关资源
    最近更新 更多