将 Play 项目导入 IntelliJ 时出错

Error importing a Play project into IntelliJ

首先,我对Java不熟悉。我做过一些小项目,但从来没有用过Play。

我正在使用 Windows 8.1.

我使用 activator new prj 创建了一个项目,然后尝试使用其内置功能将其导入 IntelliJ。

当它最终尝试导入时,它给了我这个堆栈跟踪:

Error:Error while importing SBT project:
...
    at scala.collection.TraversableLike$$anonfun$map.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.apply(Defaults.scala:1040)
    at sbt.Classpaths$$anonfun.apply(Defaults.scala:1040)
    at scala.Function1$$anonfun$compose.apply(Function1.scala:47)
    at scala.Function1$$anonfun$compose.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.apply$mcV$sp(INode.scala:67)
    at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:76)
    at sbt.EvaluateSettings$$anon.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 中成功导入它)。

如果这不是问题,我怎么可能解决它?

我也遇到了同样的问题。 @codegasmer 是对的,尝试做 "activator idea" 然后 "open" 项目。

它似乎可以工作,直到他们修复它。

如果您使用的是 activator 1.3,请确保为 sbt 0.13.7

编辑 project/build.properties
file://${activator.home}/repository

你提到应该用

代替
file:///${activator.home}/repository

在Windows平台。

在Windows中,file:///是合法的而不是file://。所以,你必须修改c:\users\[YourName]\.sbt\ director中的'repositories'文件,所有file://字都要替换成file:///.

它应该可以工作,因为我以前遇到过同样的问题,并且我已经通过上述更改修复了它。 祝你好运。

我遇到了同样的问题。我的好像是用户目录名中的space。我取出 ${user.home} 并将其替换为硬编码的目录名称,使用短的 8.3 目录名称,没有 spaces(由 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;})