workspace内web项目修改了,可能在tomcat启动的项目那里没改,需保持同步
publish:发布 workspace内web项目同步到tomcat启动的项目那里 (很重要,改了记得发布下)
clean:移除tomcat启动那里的项目
Tomcat本身支持jsp热部署,和web-inf/classes 和web-inf/lib 下类的reload
(reloadable属性为true,后台线程检查时间戳)context.reload()
eclipse里若Sever is running, 会检查workspace内web项目,自动同步到tomcat启动的项目那里,这时候Tomcat若支持reload,就会context.reload()
因此eclipse里tomcat的热部署条件:
1.workspace里的自动build,如使用maven,src/main/java,resources里的编译和copy到target/classes里,还有
target/test-classes,还有target/m2e-wtp里的META-INF(含pom)
2.eclipse插件帮你发布/同步到新的位置,帮你生成新的配置文件(不用tomcat安装目录下的配置文件)
src/main/webapp 全部同步(一般含jsp和web.xml等)
target/classes和target/test-classes 同步WEB-INF/classes
pom声明jar从仓库copy到WEB-INF/lib
target/m2e-wtp META-INF 同步 META-INF
3.tomcat发现应用目录下有变化,可reload
给出一个实例地址:D:\Users\zf.xu\eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
最佳实践:
1 项目发布到tomcat安装目录下而不是workspace,use tomcat installation
2 查看各种文件是否拷贝过去
3 依赖的是workspace内的项目而不是maven库的jar,特殊处理
可见 https://blog.csdn.net/u010295735/article/details/77504621