Tomcat源码学习之源码调试环境搭建
目录
准备工作
源码下载
Tomcat8.5源码:http://tomcat.apache.org/download-80.cgi#8.5.20开发工具
Intellij idea思路
使idea运行编译后的tomcat,使用maven编译容易报错,选择使用ant编译,将ant编译后的tomcat配置到idea的java application调试,此时main class复选框关联不了tomcat的启动类BootStrap,添加项目的maven配置,使main class选框关联启动类。
编译源码
源码压缩包解压之后得到apache-tomcat-8.5.20-src文件夹,使用Idea打开该文件夹。
idea集成了ant build插件,右侧选择AntBuild工具栏,点击添加,选择项目文件build.xml,点击AntBuild的执行键等待编译完成。
编译完成后,项目目录中生成了out文件夹,out文件夹下面的build文件夹就是编译后的tomcat,将build文件夹拷贝至apache-tomcat-8.5.20-src目录下,可以将build文件夹重命名,这里命名为catalina
源文件的maven配置
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.tomcat</groupId>
<artifactId>Tomcat8.5</artifactId>
<name>Tomcat8.5</name>
<version>8.5</version>
<build>
<finalName>Tomcat8.5</finalName>
<sourceDirectory>java</sourceDirectory>
<!--<testSourceDirectory>test</testSourceDirectory>-->
<resources>
<resource>
<directory>java</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>test</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.5.1</version>
</dependency>
</dependencies>
</project>
配置idea调试tomcat
idea调试在run菜单下配置,依次打开run->edit configurations,添加java application,填入配置。Name随便输入,main class从关联中选择org.apache.catalina.startup.Bootstrap,VM options中配置编译后的tomcat作为catalina_home,根据自己创建的目录配置。
vm options
-Dcatalina.home="D:\WorkStation\FramworkSrc\apache-tomcat-8.5.20-src\apache-tomcat-8.5.20-src\catalina"
启动调试
在默认端口8080未被占用的情况下,点击对应的调试按钮后进行调试。