Sbt 0.13.8 URI имеет компонент полномочий
Я получаю эту ошибку при запуске sbt в проекте sbt. У меня JDK 8 и sbt 0.13.8. Я могу запустить команду активатора без проблем, но мне нужно sbt работать, потому что моя IDE (IntelliJ IDEA) использует его для загрузки проекта.
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
Ответы
Ответ 1
URI, который активатор добавляет в список репозитория sbt, не имеет третьей косой черты.
Открыть C:\Users\[USER] \. sbt\repositories
Добавьте третий слэш
(т.е. активатор-запуска-локальный: файл:/// ${activator.local.repository- ${activator.home- ${user.home}/.activator}/репозиторий}, [организация ]/[модуль]/(scala_ [scalaVersion]/) (sbt_ [sbtVersion]/) [редакция]/[тип] s/артефакт. [доб])
Ответ 2
Я просто удалил папку .sbt в C:\Users [USER] \
и проект игры был успешно импортирован в intellij.
Ответ 3
Решение немного сложнее (вам нужно повторно вставлять косую черту каждый раз). См. Здесь: https://github.com/typesafehub/activator/issues/1037
Ответ 4
Это все еще проблема с Windows, и исправление заключается в замене файла://файлом:///, и это очень раздражает, поэтому хорошим решением является установка простого ant build.xml в проекте корень.
<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>
Вы можете либо запустить цель fixsbt самостоятельно, либо выполнить замену файла, либо использовать цель запуска, чтобы исправить файл репозиториев, а затем запустить активатор. В этом примере для запуска команды используется оболочка gitbash, поэтому вам потребуется изменить оболочку/путь для вашей среды.