前面两篇文章中我们提到了寻找tomcat的main函数,还有tomcat的启动加载过程,第一个还好,基本上都是通过.sh文件来看的,但第二个如果直接通过文本打开java文件就有点痛苦了,可能小伙伴看的时候就在想,要是能在idea中打开tomcat源码学习多好,今天我们就一起把tomcat源码导入到idea中。

准备工作

ideahttps://www.jetbrains.com/idea/

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

anthttps://ant.apache.org/bindownload.cgi

下载依赖的jar包

现在常用开发中我们都是使用maven来下载的jar包,但tomcat源码是用ant进行打包的,我们也可以转成pom.xml用maven下载,但本质上都是一样的。只要把依赖的jar包下载下来,导入到工程中就可以了。

配置ant 环境变量

windows下配环境变量,和其他常用软件一样,配置到bin目录,这样就可以在命令行中执行ant 命令了。

通过ant下载包

打开下载的tomcat 源码包 ,通过命令行进入到源码根目录,即包含有build.xml的目录,如下图所示执行ant命令,可以看到在用户目录根目录新建了一个tomcat-build-libs下载过程会有些漫长,我在下载好了一份放在百度云网盘里,可以添加java技术大本营公众号,回复 tomcat-build-libs 获取。

idea中导入源码

File->new ->Project From Existing Sources选择自己下载的tomcat源码目录选择第一项然后unmark All 再一直next。 打开idea主界面后,找到ant的侧边栏这时在左边的文件树上就能看到源码包的信息了。然后把java文件夹标记成src ,如下图所示:

idea中添加依赖

平时我们用idea+maven开发,都是自动管理jar包,是不是都忘了最古老的手动添加jar包的方式? 有些博客在介绍导入源码的时候,会先转pom文件,没关系,我们现在来手动导入,打开project structure , 点击下图所示键头就可以找到jar包目录就可以添加进来了

启动tomcat

按以上配置好了之后,tomcat就可以启动了,按最我们《图说tomcat一》中讲的寻找到我们的main函数就可以运行啦!很多博客也到此结束了,但实际上问题并没有结束,不信你在浏览器上输入localhost:8080试试看。因为我们用main函数启动tomcat时,没有加载jsp解析器,需要我们自己初始化。在如下代码处加上:

这样再访问localhost:8080就能看到我们熟悉的tomcat启动的画面啦啦啦!

总结

导入tomcat源码有各种各样的操作,如转成pom的,还有的大神转成gradle这些自动构建工具的。但归到其本质都了是一个java代码和一些依赖的jar包,抓住这个本质后,我们就可以顺利的导入了。

tomcat依赖导入步骤_图说tomcat(三)导入tomcat源码到idea相关推荐

  1. threejs添加立方体_前端图形学(三十)——从源码去看threejs中的光照模型

    欢迎来到[畅哥聊技术]前端图形学相关技术文章,更多精彩内容持续更新中,敬请关注. 上章节回顾 熟悉了threejs中内置的几何图形的渲染原理就是通过顶点渲染 传入自定义顶点渲染自定义的几何图形 本章目 ...

  2. java毕业设计——基于java+Jsp+Tomcat的敬老院管理系统设计与实现(毕业论文+程序源码)——敬老院管理系统

    基于java+Jsp+Tomcat的敬老院管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Jsp+Tomcat的敬老院管理系统设计与实现,文章末尾附有本毕业设计的论文和源 ...

  3. java毕业设计——基于java+Jsp+Tomcat的牙科诊所管理系统设计与实现(毕业论文+程序源码)——牙科诊所管理系统

    基于java+Jsp+Tomcat的牙科诊所管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Jsp+Tomcat的牙科诊所管理系统设计与实现,文章末尾附有本毕业设计的论文 ...

  4. java毕业设计——基于java+JSP+Tomcat的农产品销售管理系统设计与实现(毕业论文+程序源码)——农产品销售管理系统

    基于java+JSP+Tomcat的农产品销售管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+Tomcat的农产品销售管理系统设计与实现,文章末尾附有本毕业设计的 ...

  5. jieba tfidf_【NLP】【三】jieba源码分析之关键字提取(TF-IDF/TextRank)

    [一]综述 利用jieba进行关键字提取时,有两种接口.一个基于TF-IDF算法,一个基于TextRank算法.TF-IDF算法,完全基于词频统计来计算词的权重,然后排序,在返回TopK个词作为关键字 ...

  6. synchronousqueue场景_【JUC】JDK1.8源码分析之SynchronousQueue(九)

    一.前言 本篇是在分析Executors源码时,发现JUC集合框架中的一个重要类没有分析,SynchronousQueue,该类在线程池中的作用是非常明显的,所以很有必要单独拿出来分析一番,这对于之后 ...

  7. Neural Turing Machines-NTM系列(三)ntm-lasagne源码分析

    Neural Turing Machines-NTM系列(三)ntm-lasagne源码分析 在NTM系列文章(二)中,我们已经成功运行了一个ntm工程的源代码.在这一章中,将对它的源码实现进行分析. ...

  8. 第三课 k8s源码学习和二次开发-缓存机制Informers和Reflector组件学习

    第三课 k8s源码学习和二次开发-缓存机制Informers和Reflector组件学习 tags: k8s 源码学习 categories: 源码学习 二次开发 文章目录 第三课 k8s源码学习和二 ...

  9. 1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图+PCB+源码+仿真工程+答辩论文)

    1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图+PCB+源码+仿真工程+答辩论文) 文章目录 1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图+PCB+源码+仿真工程 ...

最新文章

  1. python之生成随机密码
  2. tidb mysql5.7_MYSQL5.7实时同步数据到TiDB
  3. Leetcode题库 798.得分最高的最小轮调(差分数组 C实现)
  4. 移动app测试之怎么避免bug漏测
  5. 知识图谱入门知识(一)知识图谱应用以及常用方法概述
  6. php文件怎么设置隐藏显示代码,php文件隐藏的方法
  7. Android变量longpress,Android:在自定义WebView中从onLongPress打开ContextMenu
  8. Java Web学习总结(15)——JSP指令
  9. 6种常用的项目管理模式
  10. [数据分析笔记] 网易云歌单分析系列01—爬取网易云歌单信息
  11. EMD基础学习---emd例子
  12. 用户输入邮箱,验证邮箱格式是否正确(验证用户输入的邮箱地址中是否含有字符'@')
  13. 不懂英语怎么做亚马逊_亚马逊的回声秀可以做的一切其他回声都做不到
  14. AVS3中的AMVR和EMVR
  15. PbootCMS采集-PbootCMS自动采集-PbootCMS免登录发布插件
  16. 从事人工智能行业,学什么专业比较好,需要学哪些基础知识
  17. 我爱自然语言处理网文章汇总
  18. 2021,重新出发,看如何从0开始到学完忘记再到重回战场,#flog
  19. SPT的全称为sql pass through
  20. 使用“谷歌移动设备易用性”工具优化移动网站

热门文章

  1. 问道手游安卓服务器维护公告,问道手游安卓服务器5月24日6时维护公告
  2. MATLAB写歌曲(艺术与科学的 MEET)
  3. Python 批量采集 shopee 虾皮商品详情数据、多站点整站实时采集
  4. 病毒四度升级:安天AVL Team揭露一例跨期两年的电信诈骗进化史
  5. 御数坊刘晨:金融机构如何实现协同化与智能化数据治理能力跃迁?| IDSummit 2021
  6. 三种计算开关电源控制器结温的方法
  7. su必备插件_su有哪些好用的插件?
  8. android百科知识,百科知识软件哪个好_百科知识问答软件_各类百科知识
  9. 想提升网站广告弹窗曝光点击率?SO EASY
  10. c语言 --- 一维数组