对于开源软件,一些用户喜欢方便的开箱即用,还有一部分用户则喜欢从源代码入手,设置环境,重新构建(build)出来一个可用的版本,享受这种折腾的过程。 做为开源项目里发展成熟、用户众多的一款开源软件,Apache Tomcat有许多优良的设计与架构,所以更少不了这种「弄脏双手,从头折腾」的使用者。
其实说实话,如果单纯为了分析了研究源代码,可以下载某一版本的Tomcat以及与之对应的源代码,即可搭建调试环境。这个之前的文章里写过一些(怎样调试Tomcat源码)。 但是自己用源代码构建这种方式,相对来说,你可以随意在源代码中修改尝试,然后打包,此时再进行Remote debug方式的调试时,代码行也可以完整的对应上,不会造成困惑,基本上和在IDE里搭好一个可以调试的Project一样。
本次我们了解从源代码入手「弄脏双手,从头折腾」构建一个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源代码
编辑构建配置文件 在Tomcat源代码中,默认包含了两个Ant要使用到的文件:
拷贝build.properties.default文件一份,重命令为build.properties,再修改一下其中的base.path,这里设置一个绝对路径,用来存放构建过程中下载下来的tomcat依赖的第三方库。
然后再修改build.xml,将其中以下内容注释掉
注释掉的内容是因为其会在下载依赖时去获取一个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输出,分析并改动代码试验,都妥妥的。 |
|