【问题标题】:IntelliJ IDEA reports errors in routesIntelliJ IDEA 报告路由错误
【发布时间】:2015-06-27 21:49:30
【问题描述】:
  1. 我通过activator new play-scala-intro play-scala-intro创建了一个项目
  2. 在 IDEA 中,我点击了 File -> Import project from Existing sources 并选择了 SBT

这是默认项目结构:

我还尝试了来自 here 的所有提示(建议用于 Play 2.2 - 2.3,而我有 Play 2.4)。但我没有尝试将target/scala-*/classes_managed 添加到源中,因为我的项目不包含此文件夹。

版本

  • 我有安装了“Scala”和“Playframework 支持”插件的 Idea 14 Ultimate。
  • 播放框架:addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.1")
  • scalaVersion := "2.11.6"

【问题讨论】:

    标签: scala intellij-idea playframework typesafe-activator


    【解决方案1】:

    JetBrains 尚未更新其 Scala/Play 插件以反映 Play 2.4 的新路由结构(例如,使用类而不是控制器的对象)。您可以忽略这些错误,运行应用程序,一切都会好起来的。

    https://youtrack.jetbrains.com/issue/SCL-8812 上查看正在进行的问题单以获取更多信息。一条评论说:“这已在 IntelliJ 和 Scala 1.6.27.1.EAP 的最新 EAP 构建中得到修复,而且 IntelliJ EAP 15 在他目前的状态下看起来非常好。”

    您可以等待 IntelliJ 15。同时,忽略 IntelliJ 14 及旧版本错误标记的错误。

    【讨论】:

    • 实际上,.scala 文件中也存在多个与使用路由相关的错误,这些错误不容忽视。有没有办法获得旧版本的模板? (/templates/play-scala-intro 的简单克隆不起作用,因为在这种情况下省略了后处理)
    • 不幸的是,IntelliJ IDEA 15 EAP (build 142.2670.3) 上的错误仍然相同。
    • 您的 IDEA 15 EAP 使用什么版本的 Scala 插件?
    【解决方案2】:

    我的 IntelliJ IDEA 版本是 14.1.4,在 controllers 之前添加一个 @ 符号,如下所示:

    GET         /                    @controllers.Application.index
    

    IDE 不会报告Cannot resolve ... 消息。

    【讨论】:

      【解决方案3】:

      在此处查看 2.4 版本的文档播放文档 - https://www.playframework.com/documentation/2.4.x/ScalaRouting 它明确指出 -

      Play 支持生成两种类型的路由器,一种是依赖注入路由器,另一种是静态路由器。默认是静态路由器,但如果您使用 Play 种子激活器模板创建了一个新的 Play 应用程序,您的项目将在 build.sbt 中包含以下配置,告诉它使用注入的路由器:

      routesGenerator := InjectedRoutesGenerator

      因此,如果您检查 build.sbt,它将有一行 -

      routesGenerator := InjectedRoutesGenerator

      表示默认路由器是依赖注入路由器。

      因此,为了避免错误,您必须将 @ 附加到路由文件中的控制器,如此处所述 https://www.playframework.com/documentation/2.4.x/ScalaRouting -

      Play 文档中的代码示例假定您使用的是注入路由生成器。如果您不使用它,您可以轻松地调整静态路由生成器的代码示例,方法是在路由的控制器调用部分前加上 @ 符号,或者将每个控制器声明为对象而不是类。

      【讨论】:

        猜你喜欢
        • 2013-12-12
        • 1970-01-01
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        • 1970-01-01
        • 2019-12-31
        • 2013-09-23
        • 1970-01-01
        相关资源
        最近更新 更多