Подтвердить что ты не робот

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
4b9b3361

Ответ 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.

Ответ 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, поэтому вам потребуется изменить оболочку/путь для вашей среды.