IDE2022源码编译tomcat
创始人
2024-05-25 12:44:49
0

因为学习需要,我需要源码编译运行tomcat对其源码进行一个简单的追踪分析。由于先前并未接触过java相关的知识,安装阻力巨大。最后请教我的开发朋友才解决了最后的问题。将其整理出来,让大家能够快速完成相关的部署。本文仅解决tomcat-8.5.46版本的源码编译问题。

1.获取tomcat源码

下载连接:https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.46/src/apache-tomcat-8.5.46-src.zip
大家可以去评论区自取相关文件。

2.解压到一个英文路径的目录

在这里插入图片描述

在此目录下添加名为catalina-home的目录,将源码解压文件内的conf和webapps文件夹拷贝到实例文件夹中。

在这里插入图片描述
并在此目录下创建空的ilb、logs和temp文件夹

在这里插入图片描述

3.创建两个pom.xml文件

与解压目录同级的pom.xml文件:


4.0.0gxf    apache-tomcat-8    apache-tomcat-8-source    1.0    pom     apache-tomcat-8.5.46-src        

在这里插入图片描述
与解压源码目录同级的pom.xml文件:


4.0.0org.apache.tomcatTomcat8.5.46Tomcat8.5.468.5    Tomcat8.0    java    
        java            




        org.apache.maven.plugins    maven-compiler-plugin    2.0.2        UTF-8    1.8    1.8                        org.easymock  easymock  3.5  test        junit    junit    4.12  test            ant    ant    1.7.0            wsdl4j    wsdl4j    1.6.2            javax.xml    jaxrpc    1.1            org.eclipse.jdt.core.compiler    ecj    4.6.1          

在这里插入图片描述

4.IDE导入项目文件

直接打开IDE。点击open

在这里插入图片描述
看清楚,一定是导入的根目录同级pom.xml。这里我是做二次演示所以左面可以看到一些痕迹。
在这里插入图片描述

5.项目环境配置 - 程序入口

点击右上角配置栏,添加applocation配置
在这里插入图片描述
配置项目入口:前面的java版本无关紧要,主要是中间的和后面的入口一定要找对。否则会出现模块无法加载的情况。

org.apache.catalina.startup.Bootstrap

在这里插入图片描述

这里需要配置环境变量,点击modify opiitions添加环境变量:

在这里插入图片描述
在这里插入图片描述
将下面的配置复制进去

-Dcatalina.home=catalina-home
-Dcatalina.base=catalina-home
-Djava.io.tmpdir=catalina-home/temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=catalina-home/conf/logging.properties

在这里插入图片描述
记得删除我们这里的test文件,否则会引发编译错误

在这里插入图片描述

6.手动注册,编译运行

tomcat8及之后的想要编译就需要手动加载org.apache.jasper.servlet.JasperInitializer以启动中间件的解析功能。

找到文件,添加一行代码:
在这里插入图片描述

context.addServletContainerInitializer(new JasperInitializer(), null);

在这里插入图片描述
可以看到这样一行报错,是因为我们没有导入对应的包引起的,我们将鼠标停在上面,alt+enter就可以自动导入相关模块,解决依赖问题。

在这里插入图片描述
颜色变过来之后点击运行,就可以成功访问tomcat中间件了。

http://127.0.0.1:8080/

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...