2019独角兽企业重金招聘Python工程师标准>>>

下载tomcat源码

可从github上下载

https://github.com/apache/tomcat.git

在目录下面添加pom.xml

内容如下:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.tomcat</groupId><artifactId>tomcat8</artifactId><name>tomcat8</name><version>8.0</version><build><finalName>tomcat8</finalName><sourceDirectory>java</sourceDirectory><!--<testSourceDirectory>test</testSourceDirectory>  test 下的有些文件报错,因此将test文件夹去掉了--><resources><resource><directory>java</directory></resource></resources><testResources><testResource><directory>test</directory></testResource></testResources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.5.1</version><configuration><encoding>UTF-8</encoding><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.6</version></plugin></plugins></build><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>ant</groupId><artifactId>ant</artifactId><version>1.6.5</version></dependency><dependency><groupId>org.easymock</groupId><artifactId>easymock</artifactId><version>3.4</version></dependency><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.6.2</version></dependency><dependency><groupId>javax.xml</groupId><artifactId>jaxrpc</artifactId><version>1.1</version></dependency><!--<dependency>--><!--<groupId>org.eclipse.jdt.core.compiler</groupId>--><!--<artifactId>ecj</artifactId>--><!--<version>4.6.1</version>--><!--</dependency>--><!-- https://mvnrepository.com/artifact/org.eclipse.jdt/ecj --><dependency><groupId>org.eclipse.jdt</groupId><artifactId>ecj</artifactId><version>3.14.0</version></dependency></dependencies></project>

然后使用idea打开项目

然后安装ant,这里mac os可以直接brew install ant,也可以下载ant的安装包,添加到环境变量。

这里需要安装ant是因为我们要编译webapps下面的项目

然后进入到目录,执行ant命令,坐等几分钟后,tomcat编译完毕。

然后打开output->build->webapps目录

复制合并到tomcat目录下的webapps文件夹,因为后面启动tomcat需要用到webapps下面的web项目

所以需要编译,否则tomcat启动会报错丢失classes文件。

接下来 run->edit configurations

添加application

main-class  org.apache.catalina.startup.Bootstrap

vm参数:请按照实际情况修改

-Dcatalina.home=/Users/zxc/github/apache/tomcat

-Dcatalina.base=/Users/zxc/github/apache/tomcat

-Djava.endorsed.dirs=/Users/zxc/github/apache/tomcat/endorsed

-Djava.io.tmpdir=/Users/zxc/github/apache/tomcat/temp

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

-Djava.util.logging.config.file=/Users/zxc/github/apache/tomcat/conf/logging.properties

注意在main方法运行前面加入,因为里面有个static代码块需要运行,否则无法编译jsp

JasperInitializer initializer =new JasperInitializer();

然后运行即可看到tomcat顺利启动
打开浏览器 localhost:8080即可看到熟悉的场景
接下来开启debug模式断点学习tomcat源码

说说遇到的问题:
1:比如没有编译webapps下面的example项目代码,导致打开浏览器是报错的页面。
2:jsp编译错误,需要先在main方法前面加入

JasperInitializer initializer =new JasperInitializer();

转载于:https://my.oschina.net/zxcholmes/blog/2052557

idea导入tomcat源码相关推荐

  1. 探秘Tomcat(一)——Myeclipse中导入Tomcat源码

    前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ...

  2. tomcat依赖导入步骤_图说tomcat(三)导入tomcat源码到idea

    前面两篇文章中我们提到了寻找tomcat的main函数,还有tomcat的启动加载过程,第一个还好,基本上都是通过.sh文件来看的,但第二个如果直接通过文本打开java文件就有点痛苦了,可能小伙伴看的 ...

  3. Eclipse 导入 Tomcat 源码

    我的环境:Win10,Eclipse 4.8.0 Photon,JDK 10.0.2 1.下载Tomcat源码 我下载的是:apache-tomcat-9.0.12-src.zip 下载地址:http ...

  4. Eclipse导入Tomcat源码

    http://www.cnblogs.com/huangfox/archive/2011/10/20/2218970.html 想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到 ...

  5. 导入tomcat源码:程序包aQute.bnd.annotation.spi不存在

    <dependency><groupId>biz.aQute.bnd</groupId><artifactId>biz.aQute.bndlib< ...

  6. tomcat源码研究

    使用idea导入tomcat源码 每次接触到一个源码. 第一做的就是看源码结构. 看官方文档. 看模块.逐步击破各个模块. 学会使用已有的知识进行推理.

  7. android sutdio导入源码教程,《AndroidStudio导入安卓源码-idegen》---可方便查看安卓源代码...

    idegen是Android源码中的一个模块,需要编译一下.生成一个jar包.然后再进行构建生成AndroidStudio配置相关文件. > 什么是idegen 要将Android系统源代码工程 ...

  8. Tomcat源码解析一:下载源码与导入eclipse

    自从写web程序以来,web程序是如何在Tomcat中运行的一直困惑着我,不知道底层的运行机制是无法真正理解web的,所以就开始研究Tomcat源码,Tomcat是一个轻量级的java服务器,再结合& ...

  9. Tomcat - 源码构建Tomcat 8.5.55 启动

    文章目录 官方地址 源码搭建分析 源码搭建步骤 (Maven管理) Step1. 新增maven管理文件 pom.xml Step2. 处理conf 和 webapps Step3. 导入IEDA 3 ...

  10. eclipse导入Tomcat8源码

    最近这段时间在学习how tomcat works这本书,需要结合书上的例子对照tomcat源码来看,需要导入tomcat的源码,所以在网上找了很多教程,结合自己遇到的问题,记录如下: 1.前期准备 ...

最新文章

  1. scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离
  2. 有道概率题:一个有趣的抛硬币问题
  3. ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装
  4. loj #6235. 区间素数个数
  5. Nginx的配置实例(反向代理实例 )
  6. wxpython 调用子窗口_wxpython简介
  7. Mac使用VMware、Ubuntu安装配置虚拟机Linux
  8. 关于winfrom中如何快速导出DataGridView数据到excel中的问题
  9. 设计模式:卑微的代理模式
  10. ubuntu安装matlab2016b
  11. 开启win10隐藏语音库
  12. PEWIN32 PRO site key
  13. 固定定位的盒子使用margin:0 auto;是无法水平居中的,此时该怎么操作呢?
  14. Linux指令详解(Linux入门博文)
  15. react 实现滚动加载_在React中实现平滑滚动
  16. 2020新区势峰会精彩回顾,预见“金融科技+区块链”的下一站
  17. SSL证书信任问题处理,两种解决方案
  18. java之class文件解析
  19. 操作系统概念(一)——导论
  20. 【matlab】皮尔逊相关系数

热门文章

  1. 白板推导系列Pytorch-线性判别分析(LDA)
  2. 图论算法:稳定婚姻问题,如何找到最适合自己的另一半
  3. 店庆遇上双11,买书的最大优惠来了!
  4. 唯大英雄能真本色——leo推荐程序员小说《敏捷无敌》
  5. HTML - 布局div
  6. eclipse导入github项目(踩多个坑后发现这个最实用)
  7. 冒泡排序和选择排序的实现与比较
  8. python 爬虫性能_python-爬虫性能相关
  9. 大数据标签获取处理步骤_盘点大数据处理引擎
  10. 再见了,mover。当打之年,感恩相遇,感恩联汇,感恩一切。