Intellij IDEA无法使用Play框架解析符号

时间:2014-02-05 12:39:54

标签: intellij-idea playframework

我正在使用IDEA 13和Play 2.2.1,并在play site上进行了示例。

public static Result index() {
   return redirect(routes.Application.tasks());
}

IDEA说“无法解析方法重定向(?)”,红色会强调routes.Application.tasks()

我从播放控制台完成了“编译”和“创意”。

7 个答案:

答案 0 :(得分:22)

测试我的控制器时遇到了类似的问题。我通过"File" > "Open Project"解决了它并选择了Play框架项目的基本文件夹(之前从文件夹中删除所有构思设置文件,以便它将使用SBT设置重新导入)。

SBT支持IDEA的最后一个版本完成了90%的工作。然后F4进入模块设置对话框。设置您的项目依赖项,如下图所示(明亮的红色文件夹已由IDEA设置,但在我的项目中尚不存在,所以不要担心,如果它们在您的项目中)。这是一个在思想将使用和索引的代码中包含托管类和生成代码的问题。

enter image description here

现在我可以在IDEA中使用这样的代码并调试它没问题。

Result result = Helpers.callAction(controllers.routes.ref.CrudController.createEntity(CrudEntities.contact.name()),
        new FakeRequest().withJsonBody(paramJson)
);

你的做法也应该有效。

答案 1 :(得分:10)

我正在使用" IntelliJ Idea 13"做" sbt"使用" Activator"进行Playframework项目。经过一切尝试后,我终于通过我现有的root sbt项目中的terminal / cmd中的以下步骤解决了这个问题

  1. 在terminal / cmd中输入此命令: sbt clean
  2. 然后删除这些文件和文件夹:" .idea","所有_.iml文件" ,"所有目标文件夹都驻留在项目文件夹中(这可能没有必要,但我做到了。)"
  3. 在terminal / cmd:sbt idea
  4. 中输入此命令
  5. 现在在IntelliJ:open project
  6. 注意: 如果您使用" Play"来构建Playframework项目。命令代替"激活器" 而不是sbt idea命令,你可以尝试 play idea play "idea with-sources=yes"

    希望这会对你有所帮助。

答案 2 :(得分:7)

这些步骤对我有用: 将以下行添加到plugins.sbt文件中:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0")
but if you don't know the correct version of sbt-idea then use this instead:
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "latest.integration")
  

警告 - 构建需要花费太多时间来解析所有内容   版本并获得最新版本。

运行此命令 -

sbt gen-idea

答案 3 :(得分:6)

我可以通过将生成的代码目录标记为" Sources"来解决问题。夹。转到文件 - >项目结构 - > "根"模块 - >源。

Intellij Project Structure with Module Settings

答案 4 :(得分:4)

我必须将以下插件条目添加到我的plugins.sbt(在项目文件夹下),以便intellij IDEA解决播放变量,如路线等。

addSbtPlugin(“com.github.mpeltonen”%“sbt-idea”%“1.6.0”)

注意:将以上插件添加到plugins.sbt后,运行以下命令重建想法并解决问题:

  • 活化剂清洁
  • 激活者的想法

答案 5 :(得分:0)

在我的情况下,从没有获得项目许可的用户运行sbt命令,您将进入sbt in。 清理然后使用chown -R yourUser / path / to / project更改文件夹权限,它应该修复它。 之后./sbt compile

答案 6 :(得分:0)

我有类似的问题 - IDEA无法解决Play!框架依赖。

在我的情况下,.idea文件夹出现问题。我将项目复制到单独的文件夹,并在复制的项目根文件夹中运行“activator idea”命令。然后我比较原始项目中的.idea文件夹和复制项目 - 在那里我发现了一个区别!在文件夹 .idea / libraries 中的复制项目中,有许多XML文件包含依赖项的链接,因此我将它们复制到原始项目的同一文件夹,重新编制索引的项目,从那一刻开始,一切都很完美:)我这样做是因为我不想放弃我的项目设置(删除.idea文件夹并在原始项目文件夹中运行命令“激活器的想法”应解决问题,但项目的设置将丢失)。

希望这会有所帮助:)。