IDEA+Maven+Tomcat插件实现热部署

IDEA+Maven+Tomcat插件实现热部署

傻了吧唧的

其实不是什么大问题,但是这几天脑子有点混乱,情绪很低迷,搞得自己很郁闷。😔
切记戒骄戒躁,遇到问题不要心急,静下心来,佛系调bug~~😵

一直都把热部署的概念搞错了,热部署是指项目发布到服务器之后,以不重启服务器为前提本地重新打包发布到服务器上面运行。

说起来很好理解,但是本地tomcat热部署和Maven的Tomcat插件热部署还是有些区别的,一直没走出这个误区,静下心来想下真傻😔

Tomcat本地热部署

本地启动服务器,本地重新打包发布,run和redeploy是同一个工具
本地启动tomcat服务,不重启服务器的前提下更新war包资源。
配置很简单
Alt text
当需要更新资源时点击右上角选择redeploy重新发布即可。

Maven+Tomcat插件热部署

不一定是本地启动服务器,本地重新打包发布,run和redeploy不是同一个工具

搞清原理,热部署主要的作用是在不关闭服务器的时候添加或修改项目,tomcat必须要开着,并且保证能访问manager手动管理里面的项目。

就是说插件热部署有一个前提,就是服务器已经在运行,maven的tomcat插件不负责启动服务器,只是负责重新发布到指定的服务器资源中(远程服务器)。

第一步:修改tomcat的conf/tomcat-users.xml配置文件。

注意:该tomcat是在本地虚拟机中的,当然也可以本地win开一个
添加用户名、密码、权限。

1
2
3
<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="admin" password="admin" roles="manager-gui, manager-script"/>

然后 启动Tomcat ,通过CMD或批处理命令或其他工具启动,不要用Tomcat插件启动就行。
此时已经可以通过访问 http://192.168.184.130:8080/manager/text 进入tomcat的管理页面发布部署项目了,但是一般不会这么做,我们使用tomcat插件进行热部署。

第二步:配置maven和tomcat关联关系

maven当然是在本地开发环境了
账号密码同上配置,在maven安装目录中的settings.xml中配置。

1
2
3
4
5
6
7
<!-- 在<servers>节点下添加 -->
<server>
<!-- 配置服务器名,maven插件需要引用该插件名 -->
<id>tomcat7</id>
<username>admin</username>
<password>admin</password>
</server>

第三步:pom引入插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/hotDeploy</path>
<port>8080</port>
<!-- 用于配置热部署 -->
<url>http://192.168.184.130:8080/manager/text</url>
<server>tomcat7</server>
<username>admin</username>
<password>admin</password>
<update>true</update>
</configuration>
</plugin>
</plugins>
</build>

第四步:配置好引用本地maven的setting文件

Alt text

第五步:重新打包发布,实现热部署

tomcat已经启动了,这里只重新打包发布.
命令:tomcat7:deploy
Alt text

发布成功:
Alt text


可算把这个搞清楚了~

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×