首先,我不熟悉Java。我做了一些小项目,但从未对Play做过任何事情。
我正在使用Windows 8.1。
我使用activator new prj
创建了一个项目,然后尝试使用其内置功能将其导入IntelliJ。
当它最终尝试导入时,它会给我这个堆栈跟踪:
Error:Error while importing SBT project:
...
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:1524)
at sbt.Classpaths$$anonfun$40.apply(Defaults.scala:1040)
at sbt.Classpaths$$anonfun$40.apply(Defaults.scala:1040)
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:177)
at sbt.EvaluateSettings$INode.evaluate(INode.scala:135)
at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$submitEvaluate$1.apply$mcV$sp(INode.scala:67)
at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:76)
at sbt.EvaluateSettings$$anon$3.run(INode.scala:72)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
[error] java.net.URISyntaxException: Illegal character in authority at index 7: file://${activator.home}/repository
[error] Use 'last' for the full log.
See complete log in C:\Users\Ricardo\AppData\Local\Temp\sbt13.log
是的,错误似乎很明显:Illegal character in authority at index 7: file://${activator.home}/repository
,因为${activator.home}
当然是路径中的无效语法。
好吧,${activator.home}
看起来像一个变量。所以我可能会在这里遗漏一些东西。我需要在某处设置此变量吗?我怎么做?在我的系统变量中?
我认为我不应该设置变量,因为我之前已经这样做了(创建项目并在IntelliJ中成功导入它)。
如果这不是问题,我怎么可能解决它?
答案 0 :(得分:6)
我有同样的问题。 @codegasmer是对的,尝试做#34;激活者的想法"然后"打开"该项目。
它似乎有效,直到他们修复它。
如果您正在使用激活器1.3,请确保编辑sbt 0.13.7的project / build.properties
答案 1 :(得分:0)
file://${activator.home}/repository
你提到应该替换为
file:///${activator.home}/repository
在Windows平台中。
在Windows中,file:///
是合法的,而不是file://
。因此,您必须修改'存储库' c:\users\[YourName]\.sbt\ director
中的文件,所有file://
个字词都应替换为file:///
。
它应该工作,因为我以前遇到过同样的问题,并且我已经修改了上述更改。 祝你好运。
答案 2 :(得分:0)
我遇到了同样的问题。我似乎是用户目录名称中的空格。我拿出了$ {user.home}并用一个硬编码的目录名替换它,使用短的8.3目录名,没有空格(由DIR / X找到)。不漂亮,但它有效。
所以,在c:\ Users \ .sbt \ repositories中,我替换了这行:
activator-launcher-local: file:////${activator.local.repository-${activator.home-${user.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
与
activator-launcher-local: file:////${activator.local.repository-${activator.home-C:/Users/BRUCEC~1/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
用缩短的用户名替换BRUCEC~1(除非你的名字是Bruce C;})