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

时间:2013-03-29 18:34:39

标签: java eclipse macos playframework jnotify

问题/ s:

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

背景:

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

每次尝试时都可以进行更改而不必重新启动服务器(没有成功):

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

问题:

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

更多信息:

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

3 个答案:

答案 0 :(得分:2)

以下内容让Play自动重新加载到Eclipse:

  1. 在Eclipse首选项中,转到GeneralWorkspace。取消选中Build automatically
  2. 重新启动OS X.
  3. 无论出于何种原因,我不得不重新启动OS X以获得akim的建议。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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