我正在尝试在Eclipse中构建动态Web应用程序,而且在测试更改时遇到了麻烦。
有时当我进行更改时,我会重新启动Tomcat服务器,看,我的项目与上次完全一样。然后我清理并重建项目几次以及清理服务器,最后我的更改可见。
这很耗时且感觉不正确。
是否有适当,更快捷,更有效的方式在本地服务器上启动项目的干净副本?
答案 0 :(得分:3)
我已经使用Eclipse Tomcat插件多年没有任何问题,最近我使用的Spring Tools Suite带有用于定制Tomcat的插件。正如您所说,通过插件让您的项目自动构建并具有服务器配置,设置为自动发布更改可以在某种程度上减轻Java Web开发的痛苦。
对于非Java文件(JSP,CSS,JSF,JS等),您应该立即看到更改。对于Java文件,插件将重新加载应用程序以反映更改的类。虽然这适用于小型应用程序,但对于大型应用程序,重载时间可能会变得很大。多次重新加载后,permgen也会出现问题,您可能会丢失会话并重新启动到之前的某个屏幕,并且必须退回各个屏幕以查看更改。
最终解决方案是使用一个名为JRebel的工具,它将更新的类交换到正在运行的VM,而无需重新加载整个应用程序以及发布非java文件,重新加载应用程序配置文件(log4J,Spring)管理JPA实体等等。
http://zeroturnaround.com/software/jrebel/
它是一种商业产品,虽然不是很便宜,但根据我的经验值得每一分钱。我已经使用它多年了,没有它就无法生存。特别是在处理大型应用程序时,您的工作效率会提高x倍。没有联系,只是满意的客户。
对于免费替代方案,请参阅:
答案 1 :(得分:0)
根据我的经验,eclipse中的tomcat插件从一开始就像这样。我建议你不要使用它 - 它不值得麻烦。
至少有两种选择。 首先,您可以在本地安装tomcat,构建war文件,然后手动部署它。
更好的替代方案IMHO是为您的项目设置maven构建,然后安装maven tomcat插件,它正常工作。我从未见过它变得片状。
如果你想使用它而不是maven,那么类似的东西可能是gradle。
答案 2 :(得分:0)
我发现在Build Automatically
菜单项下选择Projects
,代码中的更改会自动重新编译并添加到当前运行的Tomcat服务器实例中。
现在它变得很棒!快得多!