Play Framework 2.1 Java / Eclipse:自动重新加载不起作用

问题/:

  • 正在编译视图,但是如果不手动重新启动服务器,则在浏览器中进行刷新将不会显示更改。
  • 对控制器的更改使用~run自动编译,但只有手动重启服务器才会更新服务器上的内容。
  • 只有在手动重新启动服务器后才会显示对confroutes更改。

背景:

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

为了能够在每次尝试时不必重新启动服务器而进行更改(没有成功):

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

问题:

  • 如何恢复自动重新加载function?
  • 除了Eclipse之外,如何在IDE上解决这个问题?

更多的信息:

  • Playframework重新加载Mac OSX不起作用
  • 使用Play框架在网络文件系统上自动重新加载

它们都指向JNotify作为自动重新加载不起作用的原因。 其中一个答案(没有足够的代表撰写评论)提到了如何“破解Play框架的sbt插件以使PlayReloader特性表现得好像JNotify不可用”。 怎么能实现这个目标?

下面让Play自动重新加载到Eclipse:

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

无论出于何种原因,我不得不重新启动OS X以获得akim的建议。

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

根据akim的建议,在Eclipse Preferences中的General\WorkspaceBuild automatically禁用Build automatically解决问题,并在上​​述所有问题情况下重新启用Play!的自动重新加载function。