热部署:所谓热部署,就是在系统正在运行的时候升级软件,却不需要重新启动应用。
*注:本文所指的tomcat热部署是指:当一个新的web项目发布时,或者在分布式环境下加入一个新模块时,不需要重新启动tomcat服务器,并不是说某个web项目已经部署并发布了,又进行源代码的修改后不需要重启服务器,如果在一个已经成功部署并发布的项目上直接进行代码的修改,大多时候是需要进行服务器的重启的。
在介绍maven项目下进行tomcat热部署前,先介绍一下通用的两种tomcat热部署的方式
Tomcat热部署方式一:
直接将一个web项目打成一个war包,并将war包放入tomcat的webapps目录下,此时tomcat服务器会自动将次war包解压并在服务器上进行部署发布(ps:将一个web项目打成war包的方式有很多种,也很简单,在这就不过多的讲解了,自行百度一下就出来了)。
Tomcat热部署方式二:
使用Tomcat自带的Tomcat Manager来对tomcat上的web项目进行管理
在tomcat的conf文件夹下,放置了一系列的tomcat的配置文件(ps:每个配置文件的作用有兴趣的朋友可以自己再去了解一下,在此也不进行过多的讲解了),找到tomcat-users.xml这个配置文件,在这个配置文件的最下方,有如下这么几行标签:
<tomcat-users> <!-- <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat" password="<must-be-changed>" roles="tomcat"/> <user username="both" password="<must-be-changed>" roles="tomcat,role1"/> <user username="role1" password="<must-be-changed>" roles="role1"/> --> </tomcat-users
如上所示,我们只需要在tomcat-users节点中配置相应的role(角色/权限)和user(用户)即可。一个user节点表示单个用户,属性username和password分别表示登录的用户名和密码,属性roles表示该用户所具备的权限。
user节点的roles属性值与role节点的rolename属性值相对应,表示当前用户具备该role节点所表示的角色权限。当然,一个用户可以具备多种权限,因此属性roles的值可以是多个rolename,多个rolename之间以英文逗号隔开即可。
接着再介绍一下Tomcat Manager的4种角色:
- manager-gui:允许访问html接口(即URL路径为/manager/html/*)
- manager-script:允许访问纯文本接口(即URL路径为/manager/text/*)
- manager-jmx:允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
- manager-status:允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
说了这么多,下面我们以一个具体的配置为例:
<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="manager-gui,manage-script"/>
最后,启动Tomcat服务器,访问http://localhost:8080/manager,然后输入用户名密码,此时用户名和密码都是:tomcat
登入成功能够以客户端的形式来进行tomcat上web项目,找到如下所示这一栏:
此处可以将一个war包上传到服务器中,上传成功后便会自动部署并发布(ps:有关Tomcat Manager的更多用处,有兴趣的朋友可以自己再去了解一下,此处主要说明tomcat的热部署)。
Maven项目下进行Tomcat热部署:
扯了这么多,该讲讲如何在Maven项目上进行Tomcat的热部署了,很简单,只需要在pom文件中配置如下插件即可:
<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <!-- 端口号,可自定义 --> <port>8080</port> <!-- 项目访问路径 --> <path>/qing</path> <!-- Tomcat Manager的url访问路径,固定写法 --> <url>http://localhost:8080/manager/text</url> <!-- Tomcat Manager的用户名和密码 --> <username>tomcat</username> <password>tomcat</password> </configuration> </plugin> </plugins> </build>
步骤:
- 进入Tomcat的bin目录启动tomcat服务器,或者在myeclipse、eclipse中启动tomcat服务器
- 在eclipse或者myeclipse中右键点击需要热部署的web项目,选择:Run As-->Maven build..,输入:
3.最后点击Run,然后访问:http://localhost:8080/qing/index.html,能够成功访问项目说明项目部署成功
*注:想要在maven项目中进行tomcat的热部署,必须要开启Tomcat Manager