J'obtiens cette erreur lors de l'exécution de sbt dans un projet sbt. J'ai JDK 8 et sbt 0.13.8. Je peux exécuter la commande activator sans problème mais j'ai besoin que sbt fonctionne car mon IDE (IntelliJ IDEA) l'utilise pour charger le projet.
E:\work\workspace\knowlege\play-scala-di>sbt
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Java.lang.IllegalArgumentException: URI has an authority component
at Java.io.File.<init>(File.Java:423)
at sbt.Classpaths$.sbt$Classpaths$$bootRepository(Defaults.scala:1758)
at sbt.Classpaths$$anonfun$appRepositories$1.apply(Defaults.scala:1729)
at sbt.Classpaths$$anonfun$appRepositories$1.apply(Defaults.scala:1729)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:34)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at sbt.Classpaths$.appRepositories(Defaults.scala:1729)
at sbt.Classpaths$$anonfun$41.apply(Defaults.scala:1102)
at sbt.Classpaths$$anonfun$41.apply(Defaults.scala:1102)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.EvaluateSettings$MixedNode.evaluate0(INode.scala:175)
at sbt.EvaluateSettings$INode.evaluate(INode.scala:135)
at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$submitEvaluate$1.apply$mcV$sp(INode.scala:69)
at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:78)
at sbt.EvaluateSettings$$anon$3.run(INode.scala:74)
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)
[error] Java.lang.IllegalArgumentException: URI has an authority component
L'URI que l'activateur ajoute à la liste des référentiels sbt manque une troisième barre oblique.
Ouvrez C:\Users\[USER] \. Sbt\repositories
Ajoutez une troisième barre oblique (c.-à-d. Activator-launcher-local: fichier: /// $ {activator.local.repository- $ {activator.home- $ {user.home} /.activator}/repository }, [organisation]/[module]/(scala_ [scalaVersion] /) (sbt_ [sbtVersion] /) [révision]/[type] s/artefact. [ext])
Je viens de supprimer le dossier .sbt dans C:\Users [USER]\et le projet de lecture a été importé avec succès dans intellij.
La solution est un peu plus délicate (vous devez réinsérer la barre oblique à chaque fois). Voir ici: https://github.com/typesafehub/activator/issues/1037
C'est toujours un problème avec Windows et le correctif consiste à remplacer file: // par file: /// et cela est super ennuyeux, donc une bonne solution consiste à configurer une simple fourmi build.xml à la racine du projet.
<project name="someName" default="run" basedir=".">
<description>
Fix sbt repositories
</description>
<property name="sbtrepo" location="${user.home}/.sbt/repositories"/>
<target name="fixsbt">
<replace file="${sbtrepo}" token="file://$" value="file:///$"/>
</target>
<target name="run" depends="fixsbt">
<exec executable="C:\dev\Git\git-bash.exe" spawn="true">
<arg line="-c 'activator run'" />
</exec>
</target>
</project>
Vous pouvez soit exécuter la cible fixsbt seule pour remplacer le fichier, soit utiliser la cible d'exécution pour corriger le fichier des référentiels, puis exécuter l'activateur. Cet exemple utilise gitbash Shell pour exécuter la commande, vous devrez donc modifier le shell/chemin de votre environnement.