博客
关于我
快速搞定tomcat8.5源码构建
阅读量:734 次
发布时间:2019-03-21

本文共 2587 字,大约阅读时间需要 8 分钟。

Apache Tomcat 项目源码构建与配置指南

1. 获取项目源码

使用git克隆Apache Tomcat的代码仓库:

git clone https://gitee.com/mirrors/tomcat.gitcd tomcat

切换到指定版本的分支:

git checkout -b "tomcat7.0" origin/7.0.x# 或者git checkout -b "tomcat8.5" origin/8.5.x

2. 导入到IDEA

在IDEA中创建新项目,选择项目类型为“ exploded pom ”,输入项目名称,当导入完成后,IDEA会自动生成代码并弹出窗口。

3. 添加POM文件

将提供的pom.xml复制到项目根目录下,并确保内容与实际项目匹配。模板格式如下:

...

注意: 根据项目需求调整_groupId、artifactId、version、name等字段。

4. 扩展目录结构

在tomcat/test/util目录下新建CookieFilter.java文件,并添加以下内容:

package util;import java.util.Locale;import java.util.StringTokenizer;public class CookieFilter {    private static final String OBFUSCATED = "[obfuscated]";    private CookieFilter() {        // Hidden constructor    }    public static String filter(String cookieHeader, String sessionId) {        StringTokenizer st = new StringTokenizer(cookieHeader, ";");        StringBuilder sb = new StringBuilder(cookieHeader.length());        boolean first = true;        while (st.hasMoreTokens()) {            if (!first) {                sb.append(';');            }            sb.append(filterNameValuePair(st.nextToken(), sessionId));            first = false;        }        return sb.toString();    }    private static String filterNameValuePair(String input, String sessionId) {        int i = input.indexOf('=');        if (i == -1) {            return input;        }        String name = input.substring(0, i);        String value = input.substring(i + 1);        return name + "=" + filter(name, value, sessionId);    }    public static String filter(String cookieName, String cookieValue, String sessionId) {        if (cookieName.toLowerCase(Locale.ENGLISH).contains("jsessionid")                && (sessionId == null || !cookieValue.contains(sessionId))) {            cookieValue = OBFUSCATED;        }        return cookieValue;    }}

5. 修改MANIFEST.MF文件

在tomcat/conf/af/MANIFEST.MF中,查找并修改@VERSION@1.1或相应版本。

错误示例:

Error: osgi: [tomcat] Invalid value for Bundle-Version, @VERSION@ does not match [0-9]{1,9}(\.[0-9]{1,9}(\.[0-9]{1,9}(\.[0-9A-Za-z_-]+)?)?)?

解决方法:

将MANIFEST.MF文件中的@VERSION@替换为1.1

6. 配置VM参数

在启动Apache Tomcat时,添加以下Java选项:

-Dcatalina.home=/Users/xianghan/work/github/tomcat \-Dcatalina.base=/Users/xianghan/work/github/tomcat \-Djava.endorsed.dirs=/Users/xianghan/work/github/tomcat/endorsed \-Djava.io.tmpdir=/Users/xianghan/work/github/tomcat/temp \-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \-Djava.util.logging.config.file=/Users/xianghan/work/github/tomcat/conf/logging.properties

7. 启动Tomcat

在项目根目录下执行以下命令启动Tomcat:

runBootstrap main()

以上步骤确保了Tomcat源码的正确构建与配置。

转载地址:http://dzqgz.baihongyu.com/

你可能感兴趣的文章
Luogu2973:[USACO10HOL]赶小猪
查看>>
mabatis 中出现< 以及> 代表什么意思?
查看>>
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
查看>>
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Merge Two Sorted Lists - LeetCode
查看>>