当前位置: 首页 > news >正文

idea 编译断点运行 tomcat 10.1.28 源码

idea 编译运行 tomcat 10.1.28 源码

1. 所需资源

tomcat 10.1.28
zulu JDK 22
maven
idea (支持 JDK 22)

2. Idea 导入项目

10.1.28.tar.gz 解压到指定文件夹 如 ~\tomcat-source\tomcat-10.1.28
这里等待一段时间,生成 ~\tomcat-source\tomcat-10.1.28\.idea 文件夹

3. 替换Idea生成的临时配置文件

拷贝并覆盖 \tomcat-source\tomcat-10.1.28\res\ide-support\idea 所有文件到 ~\tomcat-source\tomcat-10.1.28\.idea

4. 确认idea 项目配置

  • 已安装 ant 插件
  • 当前 Project -> SDK 为 JDK 22
  • 当前 Project -> Language level 为 22
  • 当前 Project Structure -> apache-tomcat-10.1.28 Language level 为 22
  • File -> Settings -> Build, Execution, Deployment -> Compiler-> Java Compiler -> apache-tomcat-10.1.28 Target bytecode version 为 22
  • File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Runner -> JRE -> zulu 22

注意以上设置需为 JDK 22 版本, JDK21, 17 编译会有很多错误 (引入了22的一些特性)

5. 编译

  • ant 编译
    打开 ant 工具栏 View -> Tool Windows -> ant
    如果 ant 工具栏没有项目,则 点击 + 手动导入当前项目下的 build.xml
    运行 ant 工具栏下的 clean, deploy

当前 Project 项目下会生成一个文件夹 output
在这里插入图片描述

  • maven 编译
    当前项目下 新建一个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>com.boostarea</groupId><artifactId>apache-tomcat-10.1.28</artifactId><name>apache-tomcat-10.1.28</name><version>10.1.28</version><build><finalName>apache-tomcat-10.1.28</finalName><sourceDirectory>java</sourceDirectory><testSourceDirectory>test</testSourceDirectory><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.13.0</version><configuration><encoding>UTF-8</encoding><source>22</source><target>22</target></configuration></plugin></plugins></build><dependencies><dependency><groupId>org.apache.ant</groupId><artifactId>ant</artifactId><version>1.10.14</version></dependency><dependency><groupId>org.apache.ant</groupId><artifactId>ant-apache-log4j</artifactId><version>1.10.14</version></dependency><dependency><groupId>org.apache.ant</groupId><artifactId>ant-commons-logging</artifactId><version>1.10.14</version></dependency><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.6.3</version></dependency><dependency><groupId>jakarta.xml.rpc</groupId><artifactId>jakarta.xml.rpc-api</artifactId><version>1.1.4</version></dependency><dependency><groupId>org.eclipse.jdt</groupId><artifactId>ecj</artifactId><version>3.38.0</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>jakartaee-migration</artifactId><version>1.0.7</version></dependency><dependency><groupId>biz.aQute.bnd</groupId><artifactId>biz.aQute.bndlib</artifactId><version>7.0.0</version></dependency></dependencies>
</project>

执行 maven clean compile,当前目录下生成 target 文件夹
在这里插入图片描述

maven pom.xml 文件导入目的为了后面可以debug tomcat

6. 配置debug/run当前已编译的 tomcat

新建一个应用配置
Name: tomcat
Build an run: java 22
module: apache-tomcat-10.1.28 (下拉选)
main class: org.apache.catalina.startup.Bootstrap
Working directory: D:\GitHub\tomcat-source\tomcat-10.1.28\output\build

如下图
在这里插入图片描述

7. debug 验证

设置tomcat 断点
在这里插入图片描述

基于上面应用配置 启动 debug
在这里插入图片描述
访问 http://localhost:8080
在这里插入图片描述
访问 http://localhost:8080/examples/
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • redis的一些重要的基础知识
  • onvif应用--IPC鉴权(认证)
  • Linux起源
  • matlab基本语法
  • windows安装composer
  • 网恋照妖镜源码搭建教程
  • LINUX常用命令-docker-Kubernetes
  • 【机器人工具箱Robotics Toolbox开发笔记(二)】Matlab中机器人工具箱的下载与安装
  • k8s-pod 实战一 (创建pod,启动命令,参数,pod故障排除,拉取命令)
  • Fileupload - Endpoint and OpenAI Generation for the Service
  • 快速幂算法——求解大指数幂
  • 强化学习实操入门随笔
  • 【云原生之kubernetes实战】k8s环境中部署Nginx服务
  • 学习记录——day42 模板
  • 数字货币是怎么回事什么是数字货币
  • hexo+github搭建个人博客
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • axios 和 cookie 的那些事
  • Brief introduction of how to 'Call, Apply and Bind'
  • Druid 在有赞的实践
  • HTTP请求重发
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • leetcode-27. Remove Element
  • Magento 1.x 中文订单打印乱码
  • TCP拥塞控制
  • Theano - 导数
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 电商搜索引擎的架构设计和性能优化
  • 规范化安全开发 KOA 手脚架
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聚类分析——Kmeans
  • 离散点最小(凸)包围边界查找
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 阿里云ACE认证学习知识点梳理
  • ​一些不规范的GTID使用场景
  • #define,static,const,三种常量的区别
  • #NOIP 2014# day.1 T2 联合权值
  • #NOIP 2014#Day.2 T3 解方程
  • #pragma pack(1)
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (1)bark-ml
  • (C++17) std算法之执行策略 execution
  • (Charles)如何抓取手机http的报文
  • (poj1.3.2)1791(构造法模拟)
  • (二)斐波那契Fabonacci函数
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (回溯) LeetCode 131. 分割回文串
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)nsfocus-绿盟科技笔试题目
  • .apk文件,IIS不支持下载解决
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 设计一套高性能的弱事件机制