【问题标题】:IntelliJ Play2 and Scala plugins are not compatible. Makes IntelliJ 12 no longer work as expectedIntelliJ Play2 和 Scala 插件不兼容。使 IntelliJ 12 不再按预期工作
【发布时间】:2013-06-26 20:35:48
【问题描述】:

我将 IntelliJ(12.1.4) 升级到新的 Play 2.0 Support(0.5.54) 插件,发生了两件事:

  1. IntelliJ 不再重新编译我的 .scala 类,这意味着如果 我例如从 def something(s1: String) = {} to def something(s1: String, s2: String) = {} 我得到一个 ) 在第一个参数之后出现的错误。我从运行应用程序 带有 play debug ~run 的终端,应用程序在那里重新编译 没有问题。

  2. scala.html 没有正确评估,我得到了很多语法 错误。颜色编码也是错误的。我试图改变 Scala 插件到每晚构建(0.10.281),如建议 comments 但还是不行。

这非常糟糕,因为它使使用 IntelliJ 变得痛苦且适得其反。 报告了一个错误:http://youtrack.jetbrains.com/issue/SCL-5749 但是什么 我应该同时做吗?有人解决了这个问题吗?

【问题讨论】:

    标签: scala intellij-idea playframework playframework-2.1


    【解决方案1】:

    对我来说 play2.0 版本 0.2.49 和 scala 版本 0.10.279 可以解决问题。 对于其他版本,我会遇到错误,或者我的 IDE 无法正常工作。

    播放插件链接:http://plugins.jetbrains.com/plugin/download?pr=&updateId=13272

    scala 插件链接:http://plugins.jetbrains.com/plugin/download?pr=&updateId=13504

    说明:

    1 下载 .zip(不要解压)

    2 确保您的 IDE 文件夹(C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.2\plugins)中没有 play 或 scala 插件

    3 运行 IDE 并打开插件菜单。 (文件->设置...->插件

    4 单击“从磁盘安装”按钮并选择播放 zip 文件和 scala zip 文件。 (您不需要在插件列表中禁用 play 和 scala 插件,它们会在 IDE 重启后被交换

    5 重启你的 IDE

    6(可选)在此处报告是否有效

    【讨论】:

    • 是的,第二次升级到最新版本后希望它能正常工作。 :-)
    【解决方案2】:

    使用 IntelliJ sbt 插件并使用“~compile”从 sbt 编译您的类。您可以使用“container:start”开始游戏。

    这是我在 IntelliJ 中运行的 Build.scala 文件:

    import sbt._
    import Keys._
    import play.Project._
    
    object ApplicationBuild extends Build {
    
      val appName         = "Blade_Night_App"
      val appVersion      = "1.0-SNAPSHOT"
    
      val appDependencies = Seq(
        // Add your project dependencies here,
        jdbc,
        anorm
      )
    
      val main = play.Project(appName, appVersion, appDependencies).settings(
        // Add your own project settings here      
      )
    
    }
    

    这里是 plugins.sbt:

    // Comment to get more information during initialization
    logLevel := Level.Warn
    
    // The Typesafe repository 
    resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
    
    // Use the Play sbt plugin for Play projects
    addSbtPlugin("play" % "sbt-plugin" % "2.1.0")
    

    另外我有一个 Scala 应用程序的调试配置

    1. 主类:xsbt.boot.Boot
    2. VM 选项:-Dfile.encoding=UTF8 -Dsbt.boot.properties=file:///.../play-2.1-RC4/framework/sbt/sbt.boot.properties -Dplay.version=2.1 -RC4 -Dsbt.ivy.home=.../play-2.1-RC4\repository -Dplay.home=.../play-2.1-RC4/framework -Xms128M -Xmx512M -Xss1M -XX:+CMSClassUnloadingEnabled -XX: MaxPermSize=256M
    3. 程序参数:运行

    这完全取代了我的 Play 插件 :-)

    【讨论】:

    • 我喜欢在 IntelliJ 中运行 play 的一件事是它非常易于调试。您是否设法配置了正在运行的 sbt,以便您可以从 intellij 附加到它以进行调试?
    【解决方案3】:

    这里的问题是与较新的 Scala 插件和 Play 插件普遍存在很大的不兼容。要让它工作,你必须使用 Scala 插件版本 0.7.264(这是支持人员给我的特定版本号)。我也遇到了这个问题,为了安全起见,我还恢复到 Play 插件版本 0.2.26。现在一切正常。

    要返回到以前的版本,您必须从 JetBrains 插件站点下载 ZIP 存档并在 IntelliJ IDEA 中选择“从磁盘安装”。这是获取您需要的旧 Scala 插件版本的链接:http://plugins.jetbrains.com/plugin/?id=1347

    这是一个很大的兼容性问题,显然 JetBrains 已经意识到了这一点,但我只有通过联系他们的服务台才知道如何暂时解决它,直到出现更持久的解决方案。

    【讨论】:

    • 我需要先卸载插件,然后按照您的建议手动安装。
    • 使用 0.2.26 播放插件时,视图不起作用。必须安装 0.2.49
    • 刚刚为 Scala 和 Play 2 安装了最新的 nightlies(6 月 30 日)。这行得通。从 IDEA 中编译仍然会给出错误消息,但其他一切,包括“运行”似乎都可以工作。
    【解决方案4】:

    大家好消息:Play 2.0 plugin and Scala plugin versions are synchronized again! IDEA12 现在有 0.13.286 版本(两者)。更新后我看到一些新的突出显示错误,但至少它们可以工作,并且没有关于不兼容的错误消息!

    所以,现在通过内置机制更新到两者的最新版本似乎是安全的。

    从现在开始,Scala 和 Play 2.0 插件的构建过程是通用的,所以 Play 2.0 插件具有相同的构建号。

    ——这也为以后不再重复同样的问题带来了一些希望。

    【讨论】:

    • 您好!我尝试安装它们,但我的 Controller 类的编译停止工作,所以我在 Intellij =( 中没有编译错误
    猜你喜欢
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多