天天看點

如何将Tomcat源碼加載到IDEA中并啟動

作為初入程式設計一年多的萌新,道聽途說要閱讀各種開源架構的源碼。好吧,趁着頭發還在的時候多糾結下吧,好在卡殼的時候撓頭發的時候不那麼突兀。

進入今天的主題——Tomcat的源碼加載到IDEA中。

  1. 首先到Tomcat官網下載下傳源碼檔案
  2. 如何将Tomcat源碼加載到IDEA中并啟動
  3. 上圖示注的二進制檔案和源碼檔案都要下載下傳。
  4. 将源碼檔案解壓,解壓後的檔案夾為:apache-tomcat-8.5.35-src
  5. 将二進制檔案解壓到和apache-tomcat-8.5.35-src檔案夾同一級目錄,并修改檔案夾名為catalina-home
  6. 最後的目錄檔案如下圖所示:
  7. 如何将Tomcat源碼加載到IDEA中并啟動
  8. 我選擇的是使用maven的方法将Tomcat源碼導入到IDEA中,但是下載下傳的Tomcat源碼中并沒有pom.xml檔案,是以還需要在Tomcat源碼目錄下的根目錄建立pom.xml檔案:
    <?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>2.3</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>
               
  9. pom.xml檔案中主要就是加了maven插件和Tomcat編譯運作時所需要的依賴。
  10. 下面就是将源碼檔案導入到IDEA中了
  11. 如何将Tomcat源碼加載到IDEA中并啟動
  12. 點選Import Project,選中 apache-tomcat-8.5.35-src 檔案夾,之後選中maven
  13. 如何将Tomcat源碼加載到IDEA中并啟動
  14. 然後Next到最後就可以了,記得選中jdk。
  15. 這樣Tomcat的源碼就導入到IDEA中了,稍等片刻,等待maven去下載下傳相關的jar包。下圖是Tomcat的導入後的源碼目錄結構
  16. 如何将Tomcat源碼加載到IDEA中并啟動
  17. 這個時候就該啟動下了
  18. 如何将Tomcat源碼加載到IDEA中并啟動
  19. 點選Edit Configurations配置啟動檔案。
  20. 具體的配置我就不贅述了,看圖即可
  21. 如何将Tomcat源碼加載到IDEA中并啟動
  22. 我們來分析下我圖上标注的東西到底是什麼?
    1. Name:啟動服務的名稱,可以随便填寫
    2. Main class:啟動的main方法所在的類,org.apache.catalina.startup.Bootstrap 這個路徑就是Tomcat啟動的主類,如果有不明白的,給你個 傳送門 自己體會下
    3. VM options:啟動程式的參數。這兒填寫具體路徑 -Dcatalina.home="/Users/mac/Desktop/source_code/catalina-home" ,雙引号裡面的路徑就是文章開局下載下傳的Tomcat二進制檔案解壓後的檔案路徑
    4. Working directory:調試的工作目錄。說白了就是Tomcat啟動時引用的源碼路徑。
    5. JRE選中自己安裝的
    6. 使用的module也用預設的
    7. 然後OK
  23. 接下來就是該啟動了吧,但是别高興的太早,會報錯的
  24. 如何将Tomcat源碼加載到IDEA中并啟動
  25. 提示沒有這個CookieFilter類,我一番查詢過後在GitHub上找到了這個東西,添加到  test/util 目錄下
  26. 如何将Tomcat源碼加載到IDEA中并啟動
  27. 然後再啟動一次,成功,完美。
  28. 如何将Tomcat源碼加載到IDEA中并啟動
  29. 最後就是打上斷點調試了,一步步檢視Tomcat的啟動方式,揭開神秘的面紗。撒花~~~