IDEA导入Tomcat 9.0源码

一、搭建Ant环境

(1)Tomcat与Ant之间的关系
Ant是一个项目构建工具(类似Maven),它可以编译java类,生成class文件,也可以将一个完整的项目打包成web包并发布到Tomcat中。

2)下载地址:Ant官网
Ant下载地址
下载完后解压即用,我这里是直接在windows上搭建的,解压到了F:\apache-ant-1.10.7下。

(3)配置Ant环境变量
右击我的电脑-属性-高级系统设置-环境变量,新建一个ANT_HOME变量名,变量值为F:\apache-ant-1.10.7,然后在path中添加%ANT_HOME%\bin即可。

(4)查看Ant版本
win+r进入cmd执行“ant -v”命令
查看Ant版本
以上结果表示Ant已经搭建成功了,下面准备开始导入Tomcat源码。

二、导入Tomcat源码

(1)下载tomcat源码并导入到IDEA中
下载地址:Tomcat官网
下载tomcat 9.0
下载完后进行解压,然后打开IDEA通过Open直接打开刚刚解压后的文件,打开后需要指定一下JDK。
指定JDK环境
(2)将该项目变为Maven项目
在项目的根目录下新建一个pom.xml文件,然后右击pom.xml选择Add as Maven Project变为Maven项目。
变为maven项目
这里我们先不添加pom.xml文件内容,后续再进行添加。

(3)将org.eclipse.jdt.core包打入Maven本地仓库
tomcat源码需要使用eclipse编译器这个jar包(Eclipse提供的一组API,Tomcat有所依赖),因为远程maven库是没有这个jar包的,所以需要自己将这个jar包打入到本地maven仓库中。这个jar包在eclipse的plugins文件夹下,搜索org.eclipse.jdt.core找到这个jar包并进行打入。我们可以直接通过IDEA工具打入。
打包过程
打包命令:

mvn install:install-file -Dfile=F:\jars\core-3.20.0.jar -DgroupId=org.eclipse.jdt -DartifactId=core -Dversion=3.20.0 -Dpackaging=jar 

命令参数说明:
 -Dfile:org.eclipse.jdt.core包的位置
 -DgroupId:打到 Maven 仓库对应 pom 文件中引用的 groupId
 -DartifactId:打到 Maven 仓库对应 pom 文件中引用的 artifactId
 -Dversion:版本号
 -Dpackaging:打包方式 jar或war

查看控制台的打包结果打包结果
(4)添加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>Tomcat9.0</artifactId>
    <name>Tomcat9</name>
    <version>9.0.20</version>

    <build>
        <finalName>Tomcat9</finalName>
        <sourceDirectory>java</sourceDirectory>
        <resources>
            <resource>
                <directory>java</directory>
            </resource>
        </resources>
        <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>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.10.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-apache-log4j</artifactId>
            <version>1.9.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-commons-logging</artifactId>
            <version>1.9.5</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.rpc</groupId>
            <artifactId>javax.xml.rpc-api</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.eclipse.jdt/org.eclipse.jdt.core -->
        <dependency>
            <groupId>org.eclipse.jdt</groupId>
            <artifactId>core</artifactId>
            <version>3.20.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>4.0.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

(5)启动tomcat
打开java包下面的org.catalina.startup.Bootstrap类,这个类是整个Tomcat的入口,运行这个类里面的main()方法进行启动测试,没有报错且出现了tomcat的端口则表示启动成功!
tomcat启动成功
如果报java.lang.ClassNotFoundException: listeners.ContextListener错误,那么删除Webapps下面的example工程,再次启动就成功了。。。因为example工程里面都是一些示例,在源码编译中会报错,干扰我们的正常启动,可以先删掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值