idea 编译断点运行 tomcat 10.1.28 源码

news2024/9/24 7:22:36

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/
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

双向链表

双向链表是一种基本的数据结构&#xff0c;它与单向链表的主要区别在于节点的连接方式。下面我将分别描述双向链表的特点以及它与单向链表的区别。 双向链表的特点&#xff1a; 节点结构&#xff1a;在双向链表中&#xff0c;每个节点包含三个部分&#xff1a;数据域、指向前一…

WordPress自适应美图网站整站打包源码

直接服务器整站源码数据库打包了&#xff0c;恢复一下就可以直接投入使用。保证好用易用&#xff0c;无需独立服务器就可以使用。 强调一下&#xff0c;我这个和其他地方的不一样、不一样、不一样。具体的看下面的说明。 现在网络上同样的资源包都是用的加密带后门的主题&…

[C++11#47] (四) function包装器 | bind 函数包装器 | 结合使用

目录 一. function包装器 1. 在题解上 2.bind 绑定 1.调整参数顺序 2.对类中函数的包装方法 一. function包装器 function包装器也叫作适配器。C中的function本质是一个类模板&#xff0c;也是一个包装器。 那么我们来看看&#xff0c;我们为什么需要function呢&#xff1…

[数据集][目标检测]机油泄漏检测数据集VOC+YOLO格式43张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;43 标注数量(xml文件个数)&#xff1a;43 标注数量(txt文件个数)&#xff1a;43 标注类别数…

基于SSM的献血管理系统设计与实现(论文+源码)_kaic

摘 要 近年来&#xff0c;随着科技的飞速发展&#xff0c;在全球经济一体化的大背景下&#xff0c;我们面临着巨大的挑战&#xff0c;互联网技术将进一步提高社会综合发展的效率和速度&#xff0c;而且也会涉及到各个领域。献血管理系统在网络背景下有着无法忽视的作用&#x…

Xilinx FPGA 原语解析(三):OBUFDS差分输出缓冲器(示例源码及仿真)

目录 前言&#xff1a; 一、原语使用说明 二、原语实例化代码模版 三、使用示例 1.设计文件代码 2.仿真文件代码 3.仿真结果 前言&#xff1a; 主要参考 Xilinx 官方文档《Xilinx 7 Series FPGA and Zynq-7000 All Programmable SoC Libraries Guide for HDL Designs》…

网络工程师学习笔记——局域网和城域网(二)

快速以太网 快速以太网&#xff08;&#xff18;&#xff10;&#xff12;.&#xff13;&#xff55; &#xff11;&#xff10;&#xff10;&#xff2d;&#xff42;&#xff50;&#xff53;&#xff09; 其中多模光纤的芯线直径为&#xff16;&#xff12;.&#xff15;…

跟李沐学AI:循环神经网络RNN

循环神经网络 循环神经网络&#xff08;recurrent neural networks&#xff0c;RNNs&#xff09; 是具有隐状态的神经网络。RNN 具有隐状态&#xff08;hidden state&#xff09;的原因在于它需要一种机制来存储之前输入的信息&#xff0c;以便于处理当前输入时能够考虑之前的…

Linux教程8:文本编辑命令vi

一、文本编辑命令介绍 vi&#xff08;Visual Interface&#xff09;是一种广泛使用的文本编辑器&#xff0c;特别是在Unix和类Unix系统&#xff08;如Linux&#xff09;中。尽管现代系统通常提供了更现代的文本编辑器&#xff08;如vim&#xff0c;它是vi的增强版本&#xff0…

vue axios发送post请求跨域解决

跨越解决有两种方案&#xff0c;后端解决&#xff0c;前端解决。后端解决参考Django跨域解决-CSDN博客 该方法之前试着可以的&#xff0c;但是复制到其他电脑上报错&#xff0c;所以改用前端解决 1、main.js做增加如下配置 import axios from axios Vue.prototype.$axios a…

Spring1~~~

快速入门 javaBean规范要有set方法&#xff0c;底层反射赋值 <!-- id表示在该java对象在spring容器中的id--><bean class"spring.bean.Monster" id"monster01"><property name"Id" value"100"/><property nam…

Unity数据持久化 之 向文件流读写(详细Plus版)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ 在 Unity 手册中&#xff0c;FileStream 并没有单独的详细介绍&#xff0c;因为它是 .NET 框架的一部分&#xff0c;…

已经存在的项目如何变成git的一个repository

已经存在的项目如何被git管理 背景&#xff1a; 有一套代码很敏感&#xff0c;可能动不动就要不能正常工作(硬件开发常事)&#xff0c;那改动一下下就要有个记录&#xff0c;就决定用git管理 已经有了服务里里docker里运行的gitbucket,已经有了开发用的电脑上的git客户端&…

c++ websocket简单讲解

只做简单讲解。 一.定义和原理 WebSocket 是从 HTML5 开始⽀持的⼀种⽹⻚端和服务端保持⻓连接的消息推送机制&#xff0c;传统的 web 程序都是属于 "⼀问⼀答" 的形式&#xff0c;即客⼾端给服务器发送了⼀个 HTTP 请求&#xff0c;服务器给客⼾端返回⼀个 HTTP 响…

亿发进销存一体化解决方案:多终端无缝协同,赋能企业全业务-上

亿发软件凭借对产品、市场、业务的深入理解&#xff0c;在进销存基础上进行了延伸&#xff0c;推出多终端、一体化的“进销存管理系统”多元产品矩阵。在技术上实现电脑端、手机端、PDA端、零售端、商家版以及小程序商城的多终端无缝对接。各个端口间的数据可以互通互联&#x…

Prometheus Blackbox监控网站

Blackbox Exporter简介 blackbox_exporter 是 Prometheus 拿来对 http/https、tcp、icmp、dns、进行的黑盒监控工具&#xff0c;也就是从服务、主机等外部进行探测&#xff0c;来查看服务、主机等是否可用。 Blackbox Exporter 默认端口是 9115&#xff0c; 安装1 wget htt…

模电-三极管2

学习资料&#xff1a; 12-放大电路的分析方法_4K_哔哩哔哩_bilibili 如何向老奶奶解释数据库 如何向幼儿解释能量守恒 内容有误&#xff0c;无法保证一定正确&#xff0c;请各自深入学习 大学的知识连贯性很强&#xff0c;没有前面的基础&#xff0c;无法对后面的知识进行&a…

2023 ICPC 江西省赛K. Split

K. Split time limit per test: 3 seconds memory limit per test: 512 megabytes You are given a positive integer n and a non-increasing sequence ai of length n , satisfying ∀i∈[1,n−1],. Then, you are given a positive integer m, which represents the tot…

新版英语教材变化,强调应用与素养并重

随着新学期的到来&#xff0c;2024年新版义务教育英语教材正式在全国范围内投入使用&#xff0c;这一变化不仅在教育界引起了广泛关注&#xff0c;也触动了无数家长的心弦。新版教材在内容、难度及教学理念上的全面升级&#xff0c;既为孩子们提供了更广阔的学习空间&#xff0…

STM32智能家居语音系统

简介 基于STM32构建的智能家居语音控制系统&#xff0c;采用ESP8266&#xff08;01s&#xff09;作为关键的WiFi模块。这一系统通过机智云开发平台实现与ESP8266的高效通信&#xff0c;遵循平台规范的协议&#xff0c;确保数据的可靠传输。系统支持WIFI_AIRLINK_MODE&#xff0…