idea下导入Tomcat源码

    对于web开发者来说,如果明白了tomcat那对于开发还是后面的学习都是有很大益处的,但在网上看了很多的文章,总是没弄好,经历了很久才弄好了,写个文章记录下,希望也能帮助到其他人。
  1. 下载Tomcat源码
    对于下载源码直接进入Tomcat的官网选择对应的版本下载,如图:

    idea下导入Tomcat源码_第1张图片

  2. 添加需要的jar或者配置pom文件

    将下载好的文件解压。因为启动Tomcat还需要一些jar包,因此你可以直接将需要的jar拷贝后放在与java文件夹同级的目录下,也可以给解压后的文件夹添加一个pom文件,最终目的就是下载需要的jar。其实使用ant就能完成这些,但是对于ant不熟悉,进入解压的目录后执行ant始终报错,最后也就没使用这种方式了。

    idea下导入Tomcat源码_第2张图片
    pom文件网上也有,但是按照上面说的会有报错,在idea下显示缺少插件 maven-compiler-plugin与maven-jar-plugin。 添加后的 pom文件如下:

  
<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>tomcat7artifactId>
    <name>tomcat7name>
    <version>7.0version>
    <build>
        <finalName>tomcat7finalName>
        <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.7source>
                    <target>1.7target>
                configuration>
            plugin>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-jar-pluginartifactId>
                <version>2.6version>
            plugin>
        plugins>
    build>
    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.11version>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>antgroupId>
            <artifactId>antartifactId>
            <version>1.6.5version>
        dependency>
        <dependency>
            <groupId>org.easymockgroupId>
            <artifactId>easymockartifactId>
            <version>3.4version>
        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.2.2version>
        dependency>
    dependencies>
project>  

3 将Tomcat源码导入idea中

idea下导入Tomcat源码_第3张图片

使用maven命令编译项目,在编译的时候会报错。第一个是jdk1.8的版本,没细看,直接注释掉就行。

idea下导入Tomcat源码_第4张图片

再重新编译报test文件夹下类的错误,花了时间没有解决,最终将test包去掉了。等到编译没有错误后就可以运行Tomcat了。

4 运行Bootstrap类

 像运行其他类一样,在application中添加该类并且设置vm参数,如图:

idea下导入Tomcat源码_第5张图片

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

启动后如下图所示,可以看到输出的内容:

idea下导入Tomcat源码_第6张图片

5 运行web工程
网上大部分说到这里就结束了,但对于将web工程添加到Tomcat中看运行的流程没有说,配置项目就和在 server.xml中配置工程是一样的。在D:\tomcat7\conf下的 server.xml 中的 Host节点添加

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

添加后重新启动Bootstrap类,启动完成后访问 http://localhost:8080/mytomcat/ 就可以看到Tomcat默认的工程了,如图:

idea下导入Tomcat源码_第7张图片

6 你可以将自己的工程添加到server.xml中,启动的时候跟踪代码。

你可能感兴趣的:(tomcat源码)