如何将tomcat源码以maven方式运行

前言

最近在分析tomcat的启动流程,虽然我们可以在idea中查看到tomcat的源代码,但是我们不能在上面做一些代码注释,这就会 非常的不方便,所以我们还是能在本地 运行一份源码,这样非常有利于我们分析源码

一、下载tomcat源码,选择tomcat-8.5.55版本

进入tomcat官网,点击左侧菜单栏Download对应的版本,下载源码

二、idea中创建项目

1.在idea中创建一个空白项目,名称为tomcat_study

2.打开项目源目录,将tomcat的源码解压到其中

3.创建文件夹

在tomcat的源码文件夹下面创建home目录,把源码中的conf目录和webapps目录剪切到其中(其他新建的目录如logs等),另外新建maven的pom.xml文件。

4、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.5.55</artifactId>
 <name>Tomcat8.5.55</name>
 <version>8.5.55</version>

 <dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.12</version>
   <scope>test</scope>
  </dependency>

  <dependency>
   <groupId>org.easymock</groupId>
   <artifactId>easymock</artifactId>
   <version>3.4</version>
  </dependency>

  <dependency>
   <groupId>org.apache.ant</groupId>
   <artifactId>ant</artifactId>
   <version>1.9.5</version>
  </dependency>

  <dependency>
   <groupId>javax.xml.rpc</groupId>
   <artifactId>javax.xml.rpc-api</artifactId>
   <version>1.1</version>
  </dependency>

  <dependency>
   <groupId>wsdl4j</groupId>
   <artifactId>wsdl4j</artifactId>
   <version>1.6.2</version>
  </dependency>

  <dependency>
   <groupId>org.eclipse.jdt.core.compiler</groupId>
   <artifactId>ecj</artifactId>
   <version>4.5.1</version>
  </dependency>
 </dependencies>

 <build>
  <finalName>Tomcat8.5.55</finalName>
  <sourceDirectory>java</sourceDirectory>
  <resources>
   <resource>
    <directory>java</directory>
   </resource>
  </resources>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
     <encoding>UTF-8</encoding>
     <source>1.8</source>
     <target>1.8</target>
    </configuration>
   </plugin>
  </plugins>
 </build>
</project>

5、tomcat启动配置

5.1 构建项目

完成上面的操作以后,我们在idea中重新打开项目,直接选中我们增加的pom.xml文件,将所以的包下载完成以后,构建项目结构。

5.2 设置Run/Debug configurations

其中

Main class:
org.apache.catalina.startup.Bootstrap

VM options 按照自己的路径进行修改:
-Dcatalina.home=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home
-Dcatalina.base=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home
-Djava.endorsed.dirs=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home/endorsed
-Djava.io.tmpdir=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home/temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home/conf/logging.properties

5.3 设置ContextConfig类

然后打开ContextConfig(org.apache.catalina.startup 下面) 类,加上一行代码:context.addServletContainerInitializer(new JasperInitializer(),null);

5.4 启动tomcat

即可debug查看tomcat的初始化和启动过程以及其他源码执行,入口类就是Bootstrap类的main方法。

总结

通过上面过程,我们就可以 将tomcat源码通过maven方式在本地运行起来,小编已经成功运行起来,并且对tomcat中 调用servlet初始化的流程进行了注释

到此这篇关于如何将tomcat源码以maven方式运行的文章就介绍到这了,更多相关tomcat源码以maven方式运行内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-03-30

Java(JDK/Tomcat/Maven)运行环境配置及工具(idea/eclipse)安装详细教程

Java(计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程. Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移植性.多线程.动态性等特点. Java可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等. Java环境配置(

IDEA创建maven项目时在tomcat运行浏览器404的问题

在使用IDEA构建maven入门项目进行学习时遇到了一个不解的错误,特此记录以下 完整的项目结构应该如下: 但是在tomcat运行项目时遇到index.jsp页面404的情况,很懵但是项目创建步骤并没错,tomcat运行也良好. 原因是自己生成的maven的artifacts路径不对,导致找不到项目(网上有老哥说是IDEA是默认使用自带的tomcat配置,而我们一般用自己的tomcat配置). 解决办法: 首先打开File->Project Structure: 点击artifacts,如果没有

Maven 修改tomcat运行版本和端口的实现方法

maven默认是使用tomcat6跑项目的,这段是让maven用tomcat7去跑 在pom.xml中添加 <build> <!-- we dont want the version to be part of the generated war file name --> <finalName>${project.artifactId}</finalName> <defaultGoal>compile</defaultGoal> &

Eclipse中导入Maven Web项目并配置其在Tomcat中运行图文详解

今天因为实习的关系需要讲公司已经开发的项目导入进Eclipse,而公司的项目是用Maven来构建的所以,需要将Maven项目导入进Eclipse下. 自己因为没有什么经验所以搞了得两个多小时,在这里和大家分享一下自己的经验已经在这之中遇到的一些问题. 首先我通过svn将公司的项目checkout到了本地. 因为Maven遵循的是规约比配置重要的原则,所以Maven项目的结构一般是进入目录后是一个pom.xml文件和一个src文件夹,当然可能还存在一些README之类的这些都不重要,最关键的就是p

IDEA Maven项目使用debug模式运行Tomcat的详细教程

1.在pom.xml中添加下面的依赖就可以了 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> // 这个是作用域 </dependency> <depend

IDEA2020.1.2创建web项目配置Tomcat的详细教程

本文章是一篇IDEA创建web项目配置Tomcat的整合文章,并非原创,原文链接 https://blog.csdn.net/qq_45738810/article/details/107842532 https://www.cnblogs.com/shindo/p/7272646.html 作为初学者,先看了第一个链接里大佬的文章又看其他的文章表示很懵,为了避免各位和我一样,所以在此整合一下,希望能帮到各位! 第一步,先创建一个普通的Java项目 第二步,创建web项目.右键项目名–>Add

Centos 64位安装aapt、jdk、tomcat的详细教程

1.安装jdk #查看系统自带的jdk [root@localhost ~]# rpm -qa | grep jdk java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64 java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64 #卸载系统自带openjdk [root@localhost ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.

搭建一个开源项目两种方式安装git的详细教程

一.开始工具的安装 1.git 安装git工具有两种方式,一种就是利用自带包管理工具,一种是源码编译安装 (1)由于CentOS已经具有包管理器因此只需要一行命令即可自动安装 yum install git (2)自行下载git安装包,进行安装首先下载tar包,然后移动到root目录中 从图中可见移动的轨迹,下面使用解压命令解压,得到目录git-2.28.0 tar -zxvf 复习tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件. 参数: -z或--gzip或--un

SpringBoot项目集成Flyway进行数据库版本控制的详细教程

Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式. 第一步:pom.xml添加maven依赖 <!-- https://mvnrepository.com/artifact/org.flywaydb/flyway-core --> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <versi

vue项目搭建以及全家桶的使用详细教程(小结)

前言 vue是现阶段很流行的前端框架,很多人通过vue官方文档的学习,对vue的使用都有了一定的了解,但再在项目工程化处理的时候,却发现不知道改怎么更好的管理自己的项目,如何去引入一些框架以及vue全家桶其他框架的使用,以下将详细地介绍本人在处理工程文件构建的过程:对于刚开始解除vue的新手,建议使用官方脚手架vue-cli,当然,如果你对于webpack很熟悉,你也可以自己动手搭建自己的脚手架,当然如果你没把握的话,还是推荐使用vue-cli,能更好的帮助你搭建项目: 步骤一.安装vue-cl

Go语言运行环境安装详细教程

Go的三种安装方式 Go有多种安装方式,你可以选择自己喜欢的.这里我们介绍三种最常见的安装方式: 1.Go源码安装:这是一种标准的软件安装方式.对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装是最方便而熟悉的. 2.Go标准包安装:Go提供了方便的安装包,支持Windows.Linux.Mac等系统.这种方式适合初学者,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了. 3.第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get.M

解决tomcat在Debug模式下无法启动问题

环境:eclipse,JDK1.6,tomcat6.0 问题:在server中正常启动tomcat是没问题的,javaweb项目也可正常访问,使用debug模式启动的话速度特别慢(好像一直处于那种启动状态见图),而且等一会就会提示超时并自动停止tomcat服务.也在网上查了一些方案,修改启动时间,修改tomcat内存都于事无补,报错如下图: 后来找了一些资料,这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错误,eclipse自动

详解IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)

在使用IDEA调试程序的时候,有时候在上一次tomcat关闭未完全的时候,再一次启动debug模式时会出现如下提示 提示我们端口127.0.0.1:3934这个端口被占用,无法debug模式运行程序. 对于还不怎么熟悉使用IDEA的开发而言,会非常奇怪为什么启动tomcat容器运行程序的时候不是使用8080端口,而是用到3934(也可能是其他的端口号). 于是运行cmd系统命令使用netstat -ano查看系统中正在被使用的端口列表,却发现这个端口并不在列表中. 很奇怪的事. 经过研究,发现原

详解将Web项目War包部署到Tomcat服务器基本步骤

1. 常识: 1.1 War包 War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码. 当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布. War包可以放在Tomcat下的webapps或者word目录下,随着tomcat服务器的启动,它可以自动被解压. 1.2 Tomcat服务器 Tomcat服务器是一个免费的开放源代码