使用IntelliJ IDEA  搭建Tomcat9.0项目

 

准备条件:

 

下载源码

这里我们下载的Tomcat的源码版本是9.0.12。

下载地址:

https://tomcat.apache.org/download-90.cgi

安装JDK1.8

下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

安装Ant 1.9.8或更新版本

地址:https://ant.apache.org/bindownload.cgi

安装完成后需配置环境变量(ANT_HOME,PATH)

至此,基本配置已完成,下一步导入源码,这里我们使用的IntelliJ IDEA .

Tomcat项目搭建

首先使用Idea打开Tomcat源码目录File->Open...  完成后如下。

之后对项目进行配置:

选中项目根目录 点选Project Structure

选择Project选项 配置JDK 如下:JDK1.8

之后在项目根目录下新建lib目录。

并放入如下jar文件,这些jar文件可在网上直接下载,或者读者电脑下有maven库的话直接找看看放进来就可以。

随后在Project Structure下按+ 按钮选择java 找到对应的lib目录即可。

接着需要指定输出目录,和Source文件,不然源码打开后会报错,也无法运行test目 录下的测试用例。**这一部很重要**

接着修改 build.properties 下 base.path属性值,这里可以指定一个临时目录的位置,用于编译源码时下载tomcat的依赖包

base.path=E:/temp/tomcat-build-libs

至此环境基本配置完成。

构建Tomcat

打开命令提示符 定位到 Tomcat项目的根目录下。 直接 ant 开始构建。

最终在根目录下生成编译后的tomcat。这时会发现生成的目录和文件和我们使用的tomcat目录架构是一样的。至此Tomcat源码构建完成,读者可以直接运行测试用例了。

参考

https://tomcat.apache.org/tomcat-9.0-doc/building.html

Tomcat9.0环境搭建与源码编译的更多相关文章

  1. centos 7 下 rabbitmq 3.8.0 & erlang 22.1 源码编译安装

    centos 7 下 rabbitmq 3.8.0 & erlang 22.1 源码编译安装 安装前请检查好erlang和rabbitmq版本是否相匹配参考:RabbitMQ Erlang V ...

  2. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

  3. HAProxy与LVS综合----搭建LNMP源码编译结合HAProxy或LVS负载均衡

    实战一:实现LNMP与Keepalived.HAProxy做反向代理 框架图: 实现原理: 1.当A用户访问网站时,此时需要经过防火墙,防火墙将用户访问的IP地址处理后,如果允许访问,则就访问到HAr ...

  4. TensorFlow Python2.7环境下的源码编译(三)编译

    一.源代码编译 这里要为仅支持 CPU 的 TensorFlow 构建一个 pip 软件包,需要调用以下命令: $ bazel build --cxxopt="-D_GLIBCXX_USE_ ...

  5. LAMP 环境搭建之源码包编译安装

    mysql用的二进制包安装. Apache php 用的源码包 mysql版本5.5.46    Apache版本2.4.7  PHP版本:5.5 mysql安装部分参考了阿铭linux的内容. 这是 ...

  6. Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse

    框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解 ...

  7. windows环境中hbase源码编译遇到的问题

    转载请注明出处 问题一 [ERROR] Failed to execute goal org.codehaus.mojo:findbugs-maven-plugin:3.0.0:findbugs (d ...

  8. Linux环境下levelDB源码编译与安装

    1.下载源码并编译 git clone https://github.com/google/leveldb.git cd leveldb //编译源码的时候需要安装cmake,并且版本需要大于3.9, ...

  9. qt-5.6.0 移植之qt源码编译

    其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...

随机推荐

  1. CefSharp访问需要认证网页或接口(在Request的Headers中添加认证Token)

    public class MyRequestHandler : DefaultRequestHandler { public static readonly string VersionNumberS ...

  2. WPF App.xaml.cs常用模板,包括:异常捕获,App只能启动一次

    App.xaml.cs中的代码每次都差不多,故特地将其整理出来直接复用: using System; using System.Configuration; using System.Diagnost ...

  3. Java中goto和break、continue实现区别

    goto 关键字很早就在程序设计语言中出现.事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A,则跳到这里:否则跳到那里”.若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许 ...

  4. cad2015卸载/安装失败/如何彻底卸载清除干净cad2015注册表和文件的方法

    cad2015提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装cad2015失败提示cad2015安装未完成,某些产品无法安装,也有时候想重新安装cad2015 ...

  5. <c:if test=""></c:if>如何判断空(使用例子)

    <c:if test=""></c:if>如何判断空(使用例子) 标签: session / 前端 / c-if userName是登录的时候放到sessi ...

  6. main函数中如何等待协程运行完毕

    使用channel同步 package main import ( "fmt" ) func printNumber(num int, c chan struct{}) { fmt ...

  7. redis哨兵集群环境搭建

    一.哨兵的介绍 哨兵(sentinal)是redis集群架构中非常重要的一个组件,主要功能如下: 集群监控,负责监控redis master和slave进程是否正常工作 消息通知,如果某个redis实 ...

  8. json-lib.jar开发包及依赖包的下载地址(转)

    一.去官方下载json-lib工具包下载地址:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/目前最新的是2. ...

  9. C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量

    示例代码如下: public struct SpiderResult { public string robotName; public string RobotName { get { return ...

  10. C#基础篇九OOP属性结构枚举

    1.设计一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数,有一个价格属性,价格属性只读,并且根据距离计算价格(1元/公里):-----------0-100公里 票价不打 ...