1、jsp-api、servlet-api、tomcat7-maven-plugin这三个,分别是干什么的呢?只有最后一个不行吗?
2、还有就是为什么tomcat7:run的时候,本地的服务器没有启动,而热部署的时候需要先启动本地的tomcat呢?
3、还有就是热部署之后,为什么改变servlet里面的内容,tomcat没有自动重启呢?不像jsp + servlet中,改变servlet内容,tomcat自动重新部署。
siki学院 老师joey的回答:
1、jsp-api servlet-api 是tomcat运行的依赖,如果没有编译会报错;
比如你创建个web项目,需要加入tomcat runtime 在lib里会有这两个包;如下图
注意:这2个包不能打进项目,因为会和tomcat中的jar包冲突,所以在pom.xml中要设置<scope>provided</scope>,使他们在编译时有效,打包时无效;
2、tomcat7-maven-plugin是maven的tomcat插件,使用tomcat:run会启动tomcat6版本,配置tomcat7-mvaen-plugin插件后是tomcat7版本,现在应该有高版本,不过我没使过;
3、关于热部署:
使用tomcat:run和tomcat7:run命令都是在tomcat插件里运行,可以理解为已经启动了一个迷你tomcat服务器;
而热部署,要把项目部署到你本地或者云主机的tomcat中,所以要保持服务器启动状态;
4、所谓热部署,就是在服务器不关闭的情况下将项目放到里边,所以tomcat没有重启。
所以使用tomcat7:deploy命令进行热部署之后,如果修改了代码使用tomcat7:redeploy再次进行热部署,可以在不关闭服务器的情况下将项目部署到主机中。