【问题标题】:Error importing a Play project into IntelliJ将 Play 项目导入 IntelliJ 时出错
【发布时间】:2015-02-27 02:53:31
【问题描述】:

首先,我不熟悉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)。

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

【问题讨论】:

  • 你在激活器控制台中做了idea

标签: scala intellij-idea playframework sbt


【解决方案1】:

我也有同样的问题。 @codegasmer 是对的,尝试做“激活器想法”,然后“打开”项目。

它似乎有效,直到他们修复它。

如果您使用的是 activator 1.3,请确保为 sbt 0.13.7 编辑 project/build.properties

【讨论】:

  • 当我输入我的问题时,我确实这样做了,而且效果很好,但是 IntelliJ 对我大喊大叫......
  • 更改 build.properties 以使用 sbt 版本 0.13.7 对我有用
【解决方案2】:
file://${activator.home}/repository

你提到应该替换为

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

在 Windows 平台上。

在 Windows 中,file:/// 是合法的,而不是 file://。因此,您必须修改c:\users\[YourName]\.sbt\ director 中的'repositories' 文件,所有file:// 单词应替换为file:///

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

【讨论】:

  • 感谢您的贡献,可能有用,实际上对我来说只是更新了我做这个项目时的所有工作。
【解决方案3】:

我遇到了同样的问题。我的似乎是用户目录名称中的空间。我取出 ${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 ;})

【讨论】:

    猜你喜欢
    • 2018-07-06
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    相关资源
    最近更新 更多