sbt 0.13.5 "URI has an authority component" errors whilst resolving dependencies for a Play 2.3.0 project

playframework, playframework-2.3, sbt

Solution

In my case the issue was related to one of the resolvers configured:

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

After looking at the details of last command (failing with the error) I saw the following in the resolvers list:

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

Removing the hardcoded 'file://' resolved the issue:

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

Problem

After upgrading my project to Play Framework 2.3.0 (and as a result sbt 0.13.5) I have encountered multiple "URI has an authority component" errors when sbt attempts to resolve dependencies for the first time on a fresh Debian install. For example: ``` [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) ``` It seems to be an issue with only *-parent dependencies, and did not manifest itself on earlier versions of play and sbt. I been able to reproduce on three separate servers in three separate locations, both using the provided .deb and placing the launcher jar manually. Any guidance would be greatly appreciated.

Original source

Related problems