从源代码构建Tomcat的方式

对于开源软件,一些用户喜欢方便的开箱即用,还有一部分用户则喜欢从源代码入手,设置环境,重新构建(build)出来一个可用的版本,享受这种折腾的过程。

做为开源项目里发展成熟、用户众多的一款开源软件,Apache Tomcat有许多优良的设计与架构,所以更少不了这种「弄脏双手,从头折腾」的使用者。

 

其实说实话,如果单纯为了分析了研究源代码,可以下载某一版本的Tomcat以及与之对应的源代码,即可搭建调试环境。这个之前的文章里写过一些(怎样调试Tomcat源码)。

但是自己用源代码构建这种方式,相对来说,你可以随意在源代码中修改尝试,然后打包,此时再进行Remote debug方式的调试时,代码行也可以完整的对应上,不会造成困惑,基本上和在IDE里搭好一个可以调试的Project一样。

 

本次我们了解从源代码入手「弄脏双手,从头折腾」构建一个Tomcat的过程。

 

简明过程:

  1. 安装JDK

  2. 安装Apache Ant

  3. 下载Apache Tomcat源代码

  4. 编辑Ant使用的构建文件(一般默认的是build.properites,会包含在Tomcat源代码中)

  5. 下载构建需要依赖的库(其他一些lib)

  6. 构建Tomcat

 

 

下面详细来看上述这些过程。

 

安装JDK


这个的安装过程自然不必多说,每个Java开发者都在学语言的第一天了解过了。唯一注意的是,不同的Tomcat版本,需要对应不同的JDK,所以如果JDK版本太低可能导致新版本的Tomcat编译不成功。

 

安装Apache Ant


Ant是做什么的呢?编译安装过Linux/Unix软件的用户都知道make这个工具。Ant则是Java应用的构建工具。这里注意Ant的版本也不要不老。安装过程也和JDK/Maven这些Java工具类似,解压之后配置ANT_HOME,然后加到Path中使其可执行即可。安装完成命令行执行ant –version确认安装是否正确。

 

下载Tomcat源代码


 

  1. 可以到github上下载Tomcat源代码。

  2. 也可以在官方的SVN repository去下载,直接选择具体的版本。

  3. 在官网下载发行包的位置,可以直接下载当前最新release的Tomcat和源代码,已归档的可以在归档文件中下载发行版和源代码。

 

 

 

编辑构建配置文件


在Tomcat源代码中,默认包含了两个Ant要使用到的文件:

  • build.properties.default

  • build.xml

 

拷贝build.properties.default文件一份,重命令为build.properties,再修改一下其中的base.path,这里设置一个绝对路径,用来存放构建过程中下载下来的tomcat依赖的第三方库。

 

然后再修改build.xml,将其中以下内容注释掉

 

<antcalltarget="downloadzip">

     <param name="sourcefile" value="${nsis.loc}"/>

     <param name="destfile" value="${nsis.exe}"/>

     <param name="destdir"value="${nsis.home}/.."/>

   </antcall>

 

注释掉的内容是因为其会在下载依赖时去获取一个nsis.exe的文件,用来生成tomcat在windows平台的安装程序的。我们这里不需要,所以可以在ant的构建文件build.xml里把它去掉。否则因为证书的问题,容易出现下面这个异常

 

javax.net.ssl.SSLHandshakeException:

sun.security.validator.ValidatorException:PKIX path building failed: sun.securi

ty.provider.certpath.SunCertPathBuilderException:unable to find valid certifica

tion path to requested target

当然解决这个异常的问题网上也有解决方案,但相比注释要麻烦一些。

然后在源代码的根目录执行命令ant,静待构建完成。默认会在源代码的output目录下生成一个build目录,这个就是和我们解压zip获得的Tomcat一个样。

 

此外,ant命令执行中间如果出现ConnectionTimeout这种异常,可以重复试几次。

切换到构建成功的目录下,启动起来玩耍吧, :)

然后想在啥地方加Log输出,分析并改动代码试验,都妥妥的。

相关阅读:

怎样阅读源代码?

读源码时,我们到底在读什么?

怎样调试Tomcat源码

80%的程序员都不了解的调试技巧

觉得本文对你有帮助?请分享给更多人

关注『 Tomcat那些事儿  』 ,发现更多精彩文章!了解各种常见问题背后的原理与答案。深入源码,分析细节,内容原创,欢迎关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值