共计 3294 个字符,预计需要花费 9 分钟才能阅读完成。
注意,我是本地测试的,没有进行远程服务器测试。
开发工具:Idea 管理工具:apache-maven-3.5.2 服务器:apache-tomcat-7.0.55
1、添加 Tomcat 账户:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-gui,manager-script" />
2、配置 maven 和 tomcat 关联关系,账号密码同上配置,在 settings.xml 中配置,我是配置在 %MAVEN_HOME%\conf\settings.xml 下的,自定义的 settings.xml 路径下配置是否有效可以自己尝试
<server>
<id>TomcatServer</id><!--配置你的服务器名-->
<username>admin</username>
<password>password</password>
</server>
3、Maven 引入热部署需要的包,pom.xml 如下,其中 <server>TomcatServer</server> 与上面配置的服务器名相同:
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://127.0.0.1:8080/manager/text</url>
<server>TomcatServer</server>
<update>true</update>
<!--<path>/MavenBuilder##version</path>-->
<path>/MavenBuilder</path>
</configuration>
</plugin>
</plugins>
4. 修改 tomcat 配置(走投无路了试试,说不定有效),路径 %Java_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>
以上主要配置完成后,很多人会发现报各种奇怪错误:
注意点 1:不要太相信自己,仔细检查 tomcat 登录账号,密码,还有服务 id 是否是匹配的。
注意点 2:<url>http://127.0.0.1:8080/manager/text</url> 不同的 tomcat 版本配置路径可能不同,可能是 <url>http://127.0.0.1:8080/manager/html</url>
注意点 3:<update>true</update> 这个配置如果没有,你第二次部署会扑街,因为已经部署过一次,同名项目部署第二次导致。
注意点 4:包冲突或者版本不对,pom.xml 配置如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
注意点 5:搞清原理,热部署主要的作用是在不关闭服务器的时候添加或修改项目,tomcat 必须要开着,并且保证能访问 manager 手动管理里面的项目。
注意点 6:maven 指令是 tomcat7:deploy 别点错了。
注意点 7:pom.xml 中的 <packaging>war</packaging> 不要漏掉了。
注意点 8:热部署导致内存溢出的问题配置如下:
pom.xml:
<dependency>
<groupId>se.jiderhamn.classloader-leak-prevention</groupId>
<artifactId>classloader-leak-prevention-servlet</artifactId>
<version>2.1.0</version>
</dependency>
web.xml(放在 web.xml 的最上方):
<!--处理热部署导致的内存溢出-->
<listener>
<listener-class>se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorListener</listener-class>
</listener>
谢谢之前被我参考过的各位博主。。。参考太多记不住了,抱歉
贴一张成功的图,表达一下偶不是骗纸。
Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project XXXXXX: Cannot invoke Tomcat manager: Connection reset by peer:
上面的报错信息用来提高搜索到的概率,请无视。
更多 Tomcat 相关教程见以下内容:
CentOS 6.6 下安装配置 Tomcat 环境 http://www.linuxidc.com/Linux/2015-08/122234.htm
RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目 http://www.linuxidc.com/Linux/2015-02/113528.htm
Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签) http://www.linuxidc.com/Linux/2015-02/113062.htm
Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm
Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm
CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm
Ubuntu 16.04 下安装 Tomcat 8.5.9 http://www.linuxidc.com/Linux/2017-06/144809.htm
Ubuntu 16.04 安装 Tomcat 8 图解 http://www.linuxidc.com/Linux/2017-10/147773.htm
Tomcat 配置文件 server.xml 详解 http://www.linuxidc.com/Linux/2017-10/148003.htm
Tomcat 单机多实例部署 - 多项目部署 http://www.linuxidc.com/Linux/2017-10/147259.htm
Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149453.htm