Play Framework 2.1 Java / Eclipse:自动重新加载不起作用
问题/:
- 正在编译视图,但是如果不手动重新启动服务器,则在浏览器中进行刷新将不会显示更改。
- 对控制器的更改使用
~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
勾选Refresh using native hooks or polling
– >从Referenced Libraries
删除classes_managed
并手动添加它
问题:
- 如何恢复自动重新加载function?
- 除了Eclipse之外,如何在IDE上解决这个问题?
更多的信息:
- Playframework重新加载Mac OSX不起作用
- 使用Play框架在网络文件系统上自动重新加载
它们都指向JNotify作为自动重新加载不起作用的原因。 其中一个答案(没有足够的代表撰写评论)提到了如何“破解Play框架的sbt插件以使PlayReloader特性表现得好像JNotify不可用”。 怎么能实现这个目标?
下面让Play自动重新加载到Eclipse:
- 在Eclipse首选项中,转到
General
→Workspace
。 取消Build automatically
。 - 重启OS X.
无论出于何种原因,我不得不重新启动OS X以获得akim的建议。
我通过在Eclipse中更改项目配置来解决这个问题。 我取消选中“允许源文件夹的输出文件夹”选项,这意味着Eclipse会将类编译到“bin”文件夹。 这可以防止Eclipse编译干扰Play编译。 唯一的缺点是你必须记得重做它,如果你再次play eclipse
。
根据akim的建议,在Eclipse Preferences中的General\Workspace
下Build automatically
禁用Build automatically
解决问题,并在上述所有问题情况下重新启用Play!的自动重新加载function。