【Tomcat】IDEA编译Tomcat源码-手把手教程
一、环境准备
Tomcat不同版本之间有一定的兼容性问题~
如下图所示:
官网地址:https://tomcat.apache.org/whichversion.html
下载tomcat9官网上面的源码:
这一篇文章主要是带着大家在自己的IDEA跑起来一个Tomcat。
使用的版本是Tomcat9.0.55 和 JDK8。
另外插一句,虽然官网上面讲两者是可以兼容的,但是我在做自己的项目的时候,就因为使用了Tomcat9一直报“资源不可用”之类的错误,后面换成了Tomcat8.0就可以了......
看了网络上面也有很多小伙伴表示遇到过同样的问题!也是将Tomcat版本降到8或者是将JDK升到11就可以了。
不过上述内容与本章内容是不冲突的,大家可以使用下文给出的本人的Tomcat源码仓库地址自行下载!
二、Tomcat源码下载
Gitee地址:
TomcatSource: 基于Tomcat9.0.55的源码,我们可以在IDEA上面编译调试。 (gitee.com)
三、部署&&编译
1.修改项目结构
将下载下来的源码压缩包解压,然后在解压后的目录中新建pom.xml文件, pom文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>com.tuling</groupId>
<artifactId>mvc</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.13</version>
</dependency>
<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>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
</dependencies>
</project>
2.构建项目
使用IDEA 选中pom.xml,以maven的项目导入
构建好项目后配置启动参数
添加Main class
org.apache.catalina.startup.Bootstrap
添加VM options
注意:要根据自己的实际情况修改!
-Dcatalina.home=D:/JavaSource/Tomcat/apache-tomcat-9.0.55-src
-Dcatalina.base=D:/JavaSource/Tomcat/apache-tomcat-9.0.55-src
-Djava.endorsed.dirs=D:/JavaSource/Tomcat/apache-tomcat-9.0.55-src/endorsed
-Djava.io.tmpdir=D:/JavaSource/Tomcat/apache-tomcat-9.0.55-src/temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=D:/JavaSource/Tomcat/apache-tomcat-9.0.55-src/conf/logging.properties
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8025
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Duser.language=en -Duser.region=US
JDTCompiler关于版本报错部分注释掉
修改源码ContextConfig类,将JSP解析器初始化
3.启动运行
访问浏览器:http://localhost:8080/