需求:将service服务热部署到远程服务器上(我这里是部署的服务,与web项目部署是一样的)
注意:想要在maven项目中进行tomcat的热部署,必须要开启Tomcat Manager
一。配置tomcat:
1.将项目部署到服务器上首先先需要一个tomcat服务,我们先在服务器上解压一个tomcat取名叫testtomcat:
启动tomcat,查看启动日志
可以看到tomcat已经启动成功了,接下来访问tomcat主页 并进入管理页面
如图所示管理界面是需要账号密码的,但是这时候我们并不知道账号密码,这时候我们点击取消就能看到提示,告诉我们应该怎么做才能访问tomcat后台管理页面。它提到了,我们可以配置 conf/tomcat-users.xml这个文件。用户需要有manager-gui的权限来使用图形界面进行管理,或者采用manager-script命令行方式进行管理,如下图所示。
接下来我们就需要进行修改tomcat-users.xml文件配置查看管理页面的权限,添加如下配置
代码如下:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
然后重启tomcat进入管理页面查看,账号密码就是刚刚配置的tomcat,tomcat
二。pom文件的配置:
<!-- 配置tomcat插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<path>/</path>
<port>8087</port>
<url>http://192.168.25.128:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>
</plugins>
</build>
1.<path>/</path>:它的意思是把工程放到webapps/ROOT根目录下面,覆盖原有的ROOT。原先的ROOT文件夹中存放的是tomcat首页所使用的一些图片以及页面,
,项目启动之后就会覆盖原先的这些图片等文件。放到ROOT目录下的好处是会少一级目录,如果把path配置改为<path>/taotao-manager</path>的话,代表在webapps目录下会生成一个taotao-manager.war,并且它会自动解压生成taotao-manager。如果要访问这个工程下的页面的话,就要在路径下多加一级目录,就是"/taotao-manager"。
2.<port>8087</port>:port这个配置的是tomcat7:run的端口,与部署的端口相互不影响,是idea或者eclipse启动时候所用的端口,可以留着。
3.<url>http://192.168.25.128:8080/manager/text</url>,这个url就是热部署到服务器的路径,这个是固定写法(域名:端口号/manager/text),tomcat7必须是这样。
4.剩下的两个就是tomcat管理界面的账号密码
三。使用maven命令进行部署:
按如图方式进行配置maven启动:
1.如图所示,命令为clean tomcat7:redeploy,如果是第一次部署,则为deploy,由于pom.xml配置的tomcat插件中的path为反斜杠/,这样就表示部署到tomcat的ROOT项目(第一次启动tomcat肯定启动过了,所以ROOT项目肯定是部署过的),所以这儿就用redeploy
2.后面加上-DskipTests,表示跳过测试测试类,不对test目录下的进行编译打包
启动之后再查看管理界面:
热部署成功!
注意:在部署的时候可能会部署多个tomcat,这时候需要修改tomcat的端口号,在conf/server.xml中修改,三个端口都要修改,不然会报地址被占用,我这里是部署的服务,看不到页面,如果用到dubbo的话可以通过dubbo的管理后台查看服务是否发布成功。