idea 运行 Tomcat 9 源码以及 Tomcat 9源码编译

2,309 阅读2分钟

记录下Tomcat 9 源码如何编译成像二进制 zip 或者 tar.gz 包那种文件结构

运行系统:Windows 10

一、源码编译

  • 1、下载 Tomcat 9 源码,贴个链接Tomcat9 zip 包然后解压到任意目录
  • 2、下载 ant 1.9.8 及以上版本,贴个链接ant 1.9.14 zip 包。解压到任意文件夹。
    • 环境变量配置。
      • 2.1、系统变量出新建一个 名为 ANT_HOME 的环境变量,值为上面解压后的 ant 根目录
        ant 环境变量示例
      • 2.2、系统变量中的 Path 添加一个值,值为%ANT_HOME%\bin
        ant bin 目录配置
  • 3、进入到上面第一步解压的 Tomcat9 目录中 cmd 或者 git bash 工具执行 ant,等个七八分钟应该就编译好了,我编译了 7 分 28 秒。
    • 编译的时候会下载依赖 jar 包,下载到这儿的。111 换成电脑用户名。
      • 这个下载路径可以自定义的,在 解压后的 Tomcat 根目录下新建文件 build.properties,加入内容 base.path=lib,路径可以随便填。
    • 下载完的 jar 是这样的

二、idea 运行(需要先执行上面编译后得到相关 jar 包才能运行)

  • 1、idea 打开上面解压的 Tomcat9 根目录。
    • 1.1、设置项目 SDK、Java Level、编译后文件目录分别为 jdk1.8、8、任意目录(我这儿就是项目目录下的output,这个目录也是上面 ant 编译后文件的存放目录)
  • 2、设置 Modules 下的 Tomcat 的文件夹情况如下
  • 3、引入依赖
    • 引入 ant 相关依赖,ant.jar、ant-commons-logging.jar、ant-apache-log4j.jar 三个包。这三个包可以在上面解压的 ant 工具目录下的 lib 文件夹下找到。引入方式,点Libraries 右边第一栏那个 + 号,然后选择包就可以了,一次可以按住 Ctrl 选择多个。
    • 引入其他依赖,这些依赖在 源码编译 时下载的文件里有,把下面的 jar 包引入进来
  • 4、在运行时需要 VM 参数 catalina.home,值是output/bulid(也就是上面源码 ant 编译后的目录),即 VM Options 框内填入 -Dcatalina.home=output/build,运行项目根目录下 java\org\apache\catalina\startup\Bootstrap.java 类 Tomcat 就跑起来了。