idea编译、运行tomcat源码

本文介绍一下tomcat的本地源码构建和源码运行:

  • tomcat源码下载
  • 使用ant构建tomcat,并在本地启动
  • tomcat源码导入idea
  • 使用idea构建tomcat,并在本地启动

为后续的tomcat源码阅读做个基础。

环境准备

  • windows 10
  • java 8+
  • ant 1.9.5+
  • idea 2021.3.3

tomcat源码下载

官网

https://tomcat.apache.org/download-90.cgi

github或gitee

git clone https://gitee.com/apache/tomcat.git

选择分支

cd tomcat

# 查看一下当前的标签
git tag

# 切换分支
git checkout 9.0.9

ant构建tomcat

构建

# This will execute the "deploy" target in build.xml.
ant

# 或者
ant deploy

output目录

使用ant构建之后,文件会被保存到output目录下:

output
  |-- bnd
  |-- build
    |-- bin
    |-- conf
    |-- lib
    |-- logs
    |-- temp
    |-- webapps
    |-- work
  |-- classes
  |-- jdbc-pool
  |-- manifests

build目录下保存的就是我们平时使用的tomcat。

本地运行

cd output/build/bin

# 执行启动脚本
startup.bat

tomcat源码导入idea

以下步骤:

  • 创建out、lib目录
  • 拷贝依赖jar
  • Open tomcat源码目录
  • 配置Project Structure -> JDK及Compiler output目录
  • 配置Project Structure -> Modules -> Dependencies参数
  • 将java目录Mark as为Source root

创建out、lib目录

out - 用于存放构建文件。

lib - 存放依赖jar文件。

拷贝依赖jar

之前使用ant构建时,ant会下载构建时需要的jar文件(存放在${user.home}/tomcat-build-libs下面),在这里需要将这些文件拷贝到lib目录下:

biz.aQute.bnd-4.0.0.jar
biz.aQute.bndlib-4.0.0.jar
commons-daemon-1.1.0.jar
ecj-4.7.3a.jar

另外需要下载这两个jar文件:

jaxrpc-api-1.1.jar
wsdl4j-1.6.3.jar

最后需要把output/build/lib下面的这两个jar文件拷贝过来,用于在运行时编译jsp文件:

jasper.jar
jsp-api.jar

Open tomcat源码目录

配置JDK及Compiler output目录

在这里插入图片描述

Compiler output配置tomcat/out目录。

配置Dependencies参数

在这里插入图片描述

添加Dependencies参数:

  • ${ant.home}/lib
  • tomcat/lib

idea构建运行tomcat

构建

Build -> Build Project

创建catalina目录

在tomcat源码目录下创建catalina目录,作为运行tomcat时的catalina.home和catalina.base。

将output/build下面的conf、logs、temp、webapps、work拷贝到catalina目录下:

tomcat
  |-- catalina
    |-- conf
    |-- logs
    |-- temp
    |-- webapps
    |-- work

配置appBase

配置catalina/conf/server.xml文件:

<Host name="localhost" appBase="C:\workspace\tomcat\catalina\webapps" unpackWARs="true" autoDeploy="true">

appBase配置catalina/webapps目录,我的环境在C:\workspace\tomcat\catalina\webapps这里。

idea运行源码启动tomcat

在这里插入图片描述

Edit Configurations -> 添加一个Application:

Main Class:

	org.apache.catalina.startup.Bootstrap

VM Options:

	-Djava.util.logging.config.file=C:\workspace\tomcat\catalina\conf\logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -Dcatalina.base=C:\workspace\tomcat\catalina -Dcatalina.home=C:\workspace\tomcat\catalina -Djava.io.tmpdir=C:\workspace\tomcat\catalina\temp

Program argument:

	start
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值