Tomcat源码学习之源码调试环境搭建

Tomcat源码学习之源码调试环境搭建

目录

  • Tomcat源码学习之源码调试环境搭建
        • 目录
        • 准备工作
        • 编译源码
        • 源文件的maven配置
        • 配置idea调试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的执行键等待编译完成。
Tomcat源码学习之源码调试环境搭建_第1张图片

编译完成后,项目目录中生成了out文件夹,out文件夹下面的build文件夹就是编译后的tomcat,将build文件夹拷贝至apache-tomcat-8.5.20-src目录下,可以将build文件夹重命名,这里命名为catalina


源文件的maven配置


<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.0modelVersion>
    <groupId>org.apache.tomcatgroupId>
    <artifactId>Tomcat8.5artifactId>
    <name>Tomcat8.5name>
    <version>8.5version>

    <build>
        <finalName>Tomcat8.5finalName>
        <sourceDirectory>javasourceDirectory>
        
        <resources>
            <resource>
                <directory>javadirectory>
            resource>
        resources>
        <testResources>
            <testResource>
                <directory>testdirectory>
            testResource>
        testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.5.1version>
                <configuration>
                    <encoding>UTF-8encoding>
                    <source>1.8source>
                    <target>1.8target>
                configuration>
            plugin>
        plugins>
    build>

    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>org.easymockgroupId>
            <artifactId>easymockartifactId>
            <version>3.4version>
        dependency>
        <dependency>
            <groupId>antgroupId>
            <artifactId>antartifactId>
            <version>1.7.0version>
        dependency>
        <dependency>
            <groupId>wsdl4jgroupId>
            <artifactId>wsdl4jartifactId>
            <version>1.6.2version>
        dependency>
        <dependency>
            <groupId>javax.xmlgroupId>
            <artifactId>jaxrpcartifactId>
            <version>1.1version>
        dependency>
        <dependency>
            <groupId>org.eclipse.jdt.core.compilergroupId>
            <artifactId>ecjartifactId>
            <version>4.5.1version>
        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"

Tomcat源码学习之源码调试环境搭建_第2张图片


启动调试

在默认端口8080未被占用的情况下,点击对应的调试按钮后进行调试。
Tomcat源码学习之源码调试环境搭建_第3张图片

你可能感兴趣的:(tomcat下载)