在平常的项目发布过程中,我们通常使用的方式是将项目打成war包,放置在tomcat的webapps文件夹下,然后启动startup.bat文件,然而这种发布方式耗时且易出现问题。
本人查阅了网上的一些资料,将网上资料整理汇总,亲自试验成功后整理成文档,有需要的可以继续往下看。
本文分为两大块,分别是在tomcat上热部署发布项目和在项目的maven中配置热部署发布。
一、tomcat热部署发布项目
1、开发过程中,需要某些操作,就得改变某些配置文件,这里也一样,通过mstsc命令,进入到远程桌面,找到线上项目的tomcat,修改Tomcat下{TOMCAT_HOME}conf/tomcat-users.xml配置文件,添加用户名、密码、权限。
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="admin-gui" />
<role rolename="admin-script" />
<user username="admin" password="123456" roles="manager-gui,manager-script,admin-gui,admin-script"/>
username和password可根据需要配置。
2、配置tomcat的远程访问。
在远程服务器的{TOMCAT_HOME}conf/Catalina/localhost/目录下创建一个manager.xml文件,配置如下内容:
<?xml version="1.0" encoding="UTF-8"?><Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /></Context>
如果只想部分用户使用,可在allow配置IP,例如
allow="192.168.0.102"
启动tomcat,如果tomcat处于启动状态,先关闭再启动。测试是否具有使用权限访问tomcat,例如http://192.168.0.102:8080(使用自己的服务器或是虚拟机的ip地址)
启动tomcat后会弹出熟悉的tomcat界面,点击图片中的Manager APP:
点击后会出现要输入用户名和密码的界面,输入之前配置的username和password中设置的用户名和密码,如图:
登录后会出现如下界面:
二、使用maven实现项目快捷热部署发布
1、在maven中配置远程Tomcat的管理员账号
在本地maven的{MAVEN_HOME}/conf/settings.xml文件中节点下添加如下内容:
<!-- 配置可以操作tomcat的用户名和密码 --><server> <id>crocutax</id> <!-- server login name --> <username>admin</username> <!-- server login password --> <password>123456</password></server>
2、在项目中配置maven的tomcat7插件
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 此处的名字必须和{MAVEN_HOME}/conf/settings.xml中配置的server节点的id一致-->
<server>crocutax</server>
<!--服务器端口号-->
<port>8080</port>
<!-- 项目发布的路径,默认就是tomcat/webapps目录,可以指定深层次目录, 留"/",则默认在webapps目录下部署ROOT.war包-->
<path></path>
<!-- 注意tomcat7此处的url,不能随意修改,后缀必须是text,不能是html. 如果是本地tomcat部署,用localhost和ip都可以 -->
<url>http://localhost:8080/manager/text</url>
<!--<url>http://117.62.110.110:8080/manager/text</url>-->
<!--解决中文参数乱码问题-->
<uriEncoding>UTF-8</uriEncoding>
<update>true</update>
<!--配置在tomcat\conf\tomcat-users.xml中定义的用户名-->
<username>admin</username>
<password>123456</password>
</configuration></plugin>
server : 名字必须和{MAVEN_HOME}/conf/settings.xml中配置的server节点的id一致
port : 服务器端口号
path :项目发布的路径,默认就是tomcat/webapps目录,可以指定深层次目录,留"/",则默认在webapps目录下部署ROOT.war包
url : 注意tomcat7此处的url,不能随意修改,后缀必须是text,不能是html. 如果是本地tomcat部署,用localhost和ip都可以uriEncoding :解决中文参数乱码问题
update : 热部署,否则后期会报错
username :配置{TOMCAT_HOME}\conf\tomcat-users.xml中定义的用户名
password :配置{TOMCAT_HOME}\conf\tomcat-users.xml中定义的密码
3、在项目中启动maven的tomcat部署命令
初次部署可以使用 “tomcat7:deploy” 命令(在tomcat的webapps下没有Root文件夹时使用)
如果已经部署过使用 **“tomcat7:redeploy” **命令
若有时遇到项目冲突可以使用命令
-DskipTests的意思跳过测试
clean tomcat7:redeploy -DskipTests
使用的时候出现找不到文件的错误,重新编译或者打包一下即可
使用IDEA如下图操作即可
当然也可以配置快捷启动
配置完成后直接启动即可,在此之前需要先启动tomcat在去idea中启动热部署发布项目。
以上即为tomcat与maven热部署发布项目的操作方法,如有疑问请留言。