解决直接通过idea编译运行tomcat源代码

ant方式

ant是一种基于java的build工具,与maven的显著区别是ant的依赖关系需要编写者自己去确定,maven将这个过程自动化了。

安装ant

从apache官网上下载ant,然后环境变量中创建ANT_HOME的路径,将%ANT_HOME%/bin添加到path后面。在cmdant -version得到如下图所示,则安装正确:

image

下载编译运行Tomcat的依赖

通过cmdpowershelltomcat源码路径下面运行以下命令

1
ant ide-intellij

注意:依赖可能下载失败,可以采用浏览器下载,然后放置到c:/users/登录win的用户名/tomcat-build-libs中。

IDEA配置环境与添加依赖包

  • 配置IDEA中的环境,主要配置ANT_HOMETOMCAT_BUILD_LIBS,如下图所示:

    image

  • 项目中加载上一步下载的依赖

    image

注意:在加载依赖过程中需要额外增加一个antjar包,主要用于后续编译使用,如上图圈红部分

IDEA编译Tomcat

在IDEA中将Tomcat源码中的build.xml添加到Ant插件中,并点击Ant deploy进行编译。如下图所示

image

编译完成后,会在源码路径生成output,则表示编译正常

IDEA运行

Configuration中添加Application,选择org.apache.catalina.startup.Bootstrap作为启动类,并配置Vm Options参数如下所示

image

1
2
# utf8防止乱码问题
-Dfile.encoding=UTF8 -Dcatalina.home="E:\workspace\apache-tomcat-9.0.40-src\output\build" -Duser.language=en -Duser.region=US

然后,你就可以看到那只Cat了!建议采用此种方式,不会有其它各种奇怪问题。

注意:在启动运行中test文件夹下会有几个类出现找不到类的问题,直接把报错文件删除即可

Maven方式

采用maven方式的本质是用maven来下载依赖,然后使用Tomcat中自带的配置文件与startup.bat。此种方式我只简单的说一下思路与注意点,其主要配置方式网上都有。

下载依赖

通过Maven下载其需要的依赖文件,注意不要直接从网上直接复制对应的依赖jar包。你需要到tomcat源码目录下的build.xml文件中查找对应的依赖,然后用Maven工具下载,否则会出现各种异常问题。

启动Tomcat

新建一个output的文件夹,将源码文件中的binconfwebappswork拷贝到新建文件夹中,没有就新建一个。然后将前面的-Dcatalina.home指向output即可。如果你运气不错的话,那么完全可以看到那只猫

参考:

https://www.yuque.com/alipayrrql7pkhl7/ofayer/mxmcz9

https://blog.csdn.net/liuyanglglg/article/details/108924630?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param