在sbt项目中运行sbt时得到此错误。我有JDK 8和sbt 0.13.8。我可以运行activator命令没有问题,但我需要sbt工作,因为我的IDE (IntelliJ IDEA)使用它来加载项目。
E:workworkspaceknowlegeplay-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
activator添加到sbt存储库列表的URI缺少第三个斜杠。
打开C:Users .sbt [用户]库
添加第三个斜杠(即activator-launcher-local: 文件:///${activator.local.repository-${activator.home-${user.home}/)活化剂}/库},(组织)/(模块)/(scala_ [scalaVersion]/) (sbt_ [sbtVersion]/)(修订)/[型]s/工件。[ext])
我刚刚删除了C:Users[USER]中的。sbt文件夹并且游戏项目成功导入到intelllij中。
解决方案有点棘手(每次都需要重新插入斜杠)。详见:https://github.com/typesafehub/activator/issues/1037
这仍然是Windows的一个问题,修复方法是将file://替换为file://,这样做非常烦人,所以一个很好的解决方案是在项目根目录下设置一个简单的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:devGitgit-bash.exe" spawn="true">
<arg line="-c 'activator run'" />
</exec>
</target>
</project>
您可以单独运行fixsbt目标来执行文件替换,或者使用run目标来修复存储库文件,然后运行activator。本例使用giitbash shell来运行该命令,因此您需要为您的环境更改shell/路径。