Tomcat8.0源码编译

  最近打算开始研究一下Tomcat的工做原理,拜读一下源码。因此先从编译源码开始了。尽管网上有那么多的资料,可是老是以为,本身研究一遍,写一遍,在动手作一遍可以让咱们更加深刻的了解。如今整个社会都流行着浮躁的风气,各类速成班,催熟剂的让咱们难易静下心来去好好的研究一下技术。如今想一想高中时候虽然很累,可是很充实。知道本身天天都干了些什么,再想一想如今,是否还常常写字,写文章?是否还常常读书。我在通过了很长一段时间沉浸在只是上下班,重复以往的无聊日子后,终于明白了,学习读书依然要继续,要好好为本身充电来充实本身。不要一直沉浸在本身的世界中沾沾自喜,要居安思危。html

  再说说编译tomcat8.0源码的过程,本身在研究编译的过程也是遇到了不少的弯路曲折java

  第一步:首先要安装jdk,这个相信你们干这一行的都会安装。我编译的是tomcat8.0,jdk用的1.7。由于我编译tomcat7时用的jdk7,结果编译出错,查阅资料说是jdk版本过高了。因此我就用了比jdk高一个版本的tomcat8来编译。apache

  第二步:先去Apache-Tomat官网下载8.0版本的tomcat,我以前tomact7和tomcat8的源码都下了。下载完源码后解压缩。tomcat

  第三步:编译tomcat还须要另外一个利器。那就是ant。ant也是apache的一款工具,是一个将软件编译、测试、部署等步骤联系在一块儿加以自动化的一个工具,大多用于Java环境中的软件开发。我下载的是apache-ant-1.9.6。下载完了要配置ant的环境变量。配置一个ANT_HOME ,路径是ant存放的位置,如放到了D:/software/apache-ant-1.9.6。再把ANT_HOME配置到环境变量path下。配置完后再cmd命令窗口中执行ant -version服务器

      

  第四步:在该目录下新建一个libs的文件夹。该文件夹就是tomcat依赖的jar包的下载位置。将解压的tomcat源码中的build.properties.default文件名改成build.properties。打开该文件找到base.path配置项,把该配置项的路径改成依赖包的位置。如:libs的目录是, C:/tomcat8.0-src/libs。那么build.pase=C:/tomcat8.0-src/libs。注意若是你拷贝进去的路径是baild.pase=C:\tomat8.0-src\libs。那么这样是会报错的。应该把\转义一下。因此路径应该是build.pase=C:\\tomat8.0-src\\libseclipse

  第五步:CTRL+R打开cmd命令窗口,进入到所解压的tomcat8.0的源码的位置。而后执行命令 ant download。我在执行该命令的时候报错了。可是也给我下载了一下jar包工具

      

可是后面的一些jar包就下载不下来了,试了几回依然没有成功。因此就直接日后操做了。学习

  第六步:执行命令:ant  执行该命令会花费一些时间,但最终会出现build successful的字符串。代表编译成功。测试

      

      

而且会在该源码目录下自动新增一个output的文件夹,该文件夹下的内容就是编译的tomcatui

      说是

   第七步:将源码导入eclipse中,新建一个java项目。如:tomcat8.0-src。而后将把解压源码中的java和test两个源码文件夹import到新建的tomcat8.0-src工程中。

      

      

   第八步:把导入的java和test两个文件标记为source folder,右键选择文件夹->Build Path->Use as Source Folder。标记为source folder后两个代码目录都出现了错误。这是由于缺乏依赖的jar包

   第九步:导入依赖的jar包 

      ant.jar:在你安装的ant目录:ANT_HOME/lib下。
      jaxrpc.jar:在eclipse下的/plugin/ javax.xml.rpc_xxx(版本号)/lib/目录下。
      org.eclipse.jdt.core_3.10.2.v20150120-1634.jar:在eclipse的plugin目录下。Eclipse版本不一样,名字可能不一样。
      wsdl4j-1.5.1.jar:能够从网上下,这个地方我是从以前执行ant download命令时自动下载下来的。  
      右键tomcat8->Build Path->Configuration Build Path。导入上面的几个包,java目录下就没有错了,若是test目录下还有错,能够注释掉错误的文件。

  第十部:执行org.apache.catalina.startup下的Bootstrap,这里面有main方法,会启动tomcat源码。执行后结果报错

      

      

      说是服务的实例没有配置。这是由于当前项目路径下没有lib和conf这两个文件夹,从而找不到服务器配置文件server.xml,固然也就不能实例化服务器了。解决方法:

      a、  第一种方法把前面编译生成的output目录下的/build/下的lib和conf两个目录拷贝到tomcat下,这时就能够直接启动了。

      b、  第二种方法就是添加VM参数,指定这两个文件夹的具体路径,用VM的-D参数指定catalina.home属性值为具体的路径,具体方法以下:

      Run as -> Run Configuration... - > Arguments -> VM arguments中设置:-Dcatalina.home=” C:\tomcat8.0-src\output\build”,而后Run就能够启动了。 

   第十一步:验证项目是否启动成功。地址栏中输入localhost:8080/,而后回车,端口是能够自由设置的。这里用的默认端口8080

      

      

      至此tomcat源码编译完成,固然其中还遇到过一些别的错误,这里就不一一列举了。本身也是摸索着来的,也借鉴了不少的文章,以下:

      http://www.cnblogs.com/dlutfengyu/p/5346080.html      http://www.cnblogs.com/xlbu/p/3750551.html

相关文章
相关标签/搜索