1. 程式人生 > >idea下匯入Tomcat原始碼

idea下匯入Tomcat原始碼

    對於web開發者來說,如果明白了tomcat那對於開發還是後面的學習都是有很大益處的,但在網上看了很多的文章,總是沒弄好,經歷了很久才弄好了,寫個文章記錄下,希望也能幫助到其他人。
  1. 下載Tomcat原始碼
    對於下載原始碼直接進入Tomcat的官網選擇對應的版本下載,如圖:

    這裡寫圖片描述

  2. 新增需要的jar或者配置pom檔案

    將下載好的檔案解壓。因為啟動Tomcat還需要一些jar包,因此你可以直接將需要的jar拷貝後放在與java資料夾同級的目錄下,也可以給解壓後的資料夾新增一個pom檔案,最終目的就是下載需要的jar。其實使用ant就能完成這些,但是對於ant不熟悉,進入解壓的目錄後執行ant始終報錯,最後也就沒使用這種方式了。

    這裡寫圖片描述
    pom檔案網上也有,但是按照上面說的會有報錯,在idea下顯示缺少外掛 maven-compiler-plugin與maven-jar-plugin。 新增後的 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">
<modelVersion>4.0.0</modelVersion> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat7</artifactId> <name>tomcat7</name> <version
>
7.0</version> <build> <finalName>tomcat7</finalName> <sourceDirectory>java</sourceDirectory> <!--<testSourceDirectory>test</testSourceDirectory> test 下的有些檔案報錯,因此將test資料夾去掉了--> <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.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.6.5</version> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> <version>3.4</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.2.2</version> </dependency> </dependencies> </project>

3 將Tomcat原始碼匯入idea中

這裡寫圖片描述

使用maven命令編譯專案,在編譯的時候會報錯。第一個是jdk1.8的版本,沒細看,直接註釋掉就行。

這裡寫圖片描述

再重新編譯報test資料夾下類的錯誤,花了時間沒有解決,最終將test包去掉了。等到編譯沒有錯誤後就可以執行Tomcat了。

4 執行Bootstrap類

 像執行其他類一樣,在application中新增該類並且設定vm引數,如圖:

這裡寫圖片描述

VM的設定如下所示,將”D:\tomcat7”替換為你的路徑:

-Dcatalina.home=D:\tomcat7
-Dcatalina.base=D:\tomcat7
-Djava.endorsed.dirs=D:\tomcat7\endorsed 
-Djava.io.tmpdir=D:\tomcat7\temp 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.util.logging.config.file=D:\tomcat7\conf\logging.properties

啟動後如下圖所示,可以看到輸出的內容:

這裡寫圖片描述

5 執行web工程
網上大部分說到這裡就結束了,但對於將web工程新增到Tomcat中看執行的流程沒有說,配置專案就和在 server.xml中配置工程是一樣的。在D:\tomcat7\conf下的 server.xml 中的 Host節點新增

<Context docBase="D:/tomcat7/webapps/ROOT" path="/mytomcat" debug="0"  reloadable="true"/>                       

這裡寫圖片描述

6 你可以將自己的工程新增到server.xml中,啟動的時候跟蹤程式碼。