分享

从源代码构建Tomcat的方式

 天地因心 2017-03-27


对于开源软件,一些用户喜欢方便的开箱即用,还有一部分用户则喜欢从源代码入手,设置环境,重新构建(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. 在官网下载发行包的位置,可以直接下载当前最新releaseTomcat和源代码,已归档的可以在归档文件中下载发行版和源代码。

 

 

 

编辑构建配置文件



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

  • build.properties.default

  • build.xml

 

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

 

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

 

     

     

     

   

 

注释掉的内容是因为其会在下载依赖时去获取一个nsis.exe的文件,用来生成tomcatwindows平台的安装程序的。我们这里不需要,所以可以在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输出,分析并改动代码试验,都妥妥的。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多