【问题标题】:Play Framework 2.1 Java/Eclipse: Auto-Reload not workingPlay Framework 2.1 Java/Eclipse:自动重新加载不起作用
【发布时间】:2013-03-20 12:19:25
【问题描述】:

问题:

  • 视图正在编译,但在浏览器中点击刷新不会显示更改,除非手动重新启动服务器。
  • 对控制器的更改使用~run 自动编译,但只有手动重新启动服务器才会更新服务器上的内容。
  • conf 下对 routes 的更改仅在手动重新启动服务器后才会显示。

背景:

  • 在 OSX 10.8.3 上运行
  • 使用 Eclipse Juno 4.2.2
  • 服务器使用play ~run启动
  • 重启服务器会显示视图、控制器、路由的更改

为了能够进行更改而无需每次尝试都重新启动服务器(没有成功):

  • 在控制台中:clean -> eclipse -> ~run
  • 在控制台中:clean -> compile -> ~run
  • 关闭/重新启动计算机
  • 勾选Refresh using native hooks or polling -> 从Referenced Libraries 中删除classes_managed 并手动添加

问题:

  • 如何恢复自动重新加载功能?
  • 在 Eclipse 以外的 IDE 上如何解决这个问题?

更多信息:

他们都指出 JNotify 是自动重新加载不起作用的原因。一个答案(没有足够的代表写评论)提到如何“破解 Play 框架的 sbt 插件以使 PlayReloader 特征表现得好像 JNotify 不可用一样”。怎么可能做到这一点?

【问题讨论】:

  • 您是否按照scala-ide.org/docs/tutorials/play20scalaide20中的说明进行操作
  • 我按照说明进行操作,但没有成功。源代码实际上已更新——托管的 scala 等效项显示了更改——但服务器没有。
  • 刚刚检查并在控制台中输入:show watch-sources 时列出了我的视图
  • 如果你使用Eclipse尝试禁用自动构建,可能会干扰播放!代码生成。
  • 我没有使用 Eclipse。任何人都有另一个提示如何解决这个问题?

标签: java eclipse macos playframework jnotify


【解决方案1】:

以下内容使 Play 自动重新加载以使用 Eclipse:

  1. 在 Eclipse 首选项中转到 GeneralWorkspace。取消选中Build automatically
  2. 重新启动 OS X。

无论出于何种原因,我都必须重新启动 OS X 才能获得 akim 的建议。

【讨论】:

    【解决方案2】:

    我通过更改 Eclipse 中的项目配置解决了这个问题。我取消选中“允许源文件夹的输出文件夹”选项,这意味着 Eclipse 会将类编译到“bin”文件夹。这可以防止 Eclipse 编译干扰 Play 编译。唯一的缺点是,如果你再次使用play eclipse,你必须记得重做。

    【讨论】:

      【解决方案3】:

      按照 akim 的建议,在 Eclipse Preferences 中禁用 General\Workspace 下的 Build automatically 可解决问题并在上述所有问题情况下重新启用 Play! 的自动重新加载功能。

      【讨论】:

        猜你喜欢
        • 2015-09-05
        • 2015-08-18
        • 1970-01-01
        • 2013-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-22
        相关资源
        最近更新 更多