tomcat源码编译和环境搭建(r5笔记第83天)

作者: admin 分类: 公众号存档            0 次浏览 发布时间: 2015-06-29 23:59

公众号:杨建荣的学习笔记 · 作者:r5笔记第83天 · 发布:2015-06-29 23:59:22 · 原文链接

关于tomcat源码的编译和环境搭建自己也是拖了一段时间,今天还是硬着头皮来做一做,还是有所收获。
tomcat源码的编译还是首选ant,作为apache的顶级项目ant,可以参见下面的链接进行下载,下载一个二进制运行包即可。http://ant.apache.org/bindownload.cgi然后就需要在path中配置了。简单的校验C:\Users\jeanron>ant -versionApache Ant(TM) version 1.9.5 compiled on May 31 2015
然后下载tomcat的源码,在tomcat.apache.org中可以选择,为了兼容jdk版本,我选择的是tomcat7
下载解压后,需要在目录中修改下面的文件。
重命名build.properties.default 为build.properties然后在build.properties中修改base.path
默认是:base.path=/usr/share/java因为本地是windows环境,所以修改为下面的样式。base.path=D:/tomcat7/output
根据官方建议,最好还是build.properties中配置下面的proxy配置。自己在本地比较了下,不配置基本上界面没什么反应,配置之后速度还是很快的。
proxy.use=onproxy.host=proxy.domainproxy.port=8080proxy.user=usernameproxy.password=password
当然了jdk版本也是必须的,我在本地使用的1.6.
然后就开始build。
D:\tomcat7>antBuildfile: D:\tomcat7\build.xmlbuild-prepare: [mkdir] Created dir: D:\tomcat7\output\classes [mkdir] Created dir: D:\tomcat7\output\build [mkdir] Created dir: D:\tomcat7\output\build\bin [mkdir] Created dir: D:\tomcat7\output\build\conf [mkdir] Created dir: D:\tomcat7\output\build\lib [mkdir] Created dir: D:\tomcat7\output\build\logs [mkdir] Created dir: D:\tomcat7\output\build\temp [mkdir] Created dir: D:\tomcat7\output\build\webappsdownload-compile:testexist: [echo] Testing for D:/tomcat7/output/tomcat-native-1.1.33/tomcat-native.tar.gzdownloadfile-2:proxyflags:setproxy: [echo] Using proxy.domain:8080 to download http://www.apache.org/dist/tomcat/tomcat-connectors/native/1.1.33/source/tomcat-native-1.1.33-src.tar.gztrydownload.check:trydownload: [get] Getting: http://www.apache.org/dist/tomcat/tomcat-connectors/native/1.1.33/source/tomcat-native-1.1.33-src.tar.gz [get] To: D:\tomcat7\output\download-2067852301.tmp当然了build的过程也不是一帆风顺的,比如网络的问题,直接超时退出。D:\tomcat7\build.xml:2927: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)在另外一台环境中使用jdk 1.7的版本,竟然在build的时候有些问题。…. [javac] ^ [javac] D:\tomcat7\output\tomcat7-deps\dbcp\src\java\org\apache\tomcat\dbcp\dbcp\datasources\PerUserPoolDataSource.java:60: 错误: PerUserPoolDataSource不是抽象的, 并且未覆盖CommonDataSource中的抽象方法getParentLogger() [javac] public class PerUserPoolDataSource [javac] ^ [javac] D:\tomcat7\output\tomcat7-deps\dbcp\src\java\org\apache\tomcat\dbcp\dbcp\datasources\SharedPoolDataSource.java:52: 错误: SharedPoolDataSource不是抽象的, 并且未覆盖CommonDataSource中的抽象方法getParentLogger() [javac] public class SharedPoolDataSource [javac] ^ [javac] 注: 某些输入文件使用或覆盖了已过时的 API。 [javac] 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 [javac] 注: 某些输入文件使用了未经检查或不安全的操作。 [javac] 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 [javac] 15 个错误 [javac] 1 个警告BUILD FAILEDD:\tomcat7\build.xml:2686: The following error occurred while executing this line:D:\tomcat7\build.xml:2790: Compile failed; see the compiler error output for details.Total time: 1 minute 21 seconds

最后换成1.6就没有问题了。

build:

[javac] Compiling 31 source files to C:\tomcat7\output\jdbc-pool\classes

[jar] Building jar: C:\tomcat7\output\jdbc-pool\tomcat-jdbc.jar

[copy] Copying 1 file to C:\tomcat7\output\build\lib

BUILD SUCCESSFUL

Total time: 2 minutes 1 second

源码的编译高一段落,接下来就是在eclipse中导入了,
可以直接新建一个java project,然后选择tomcat源码的路径即可。导入源码的截图如下:

当然了还有依赖的包。

还有几个依赖的包,比如ant…
不过直接通过eclipse还是能够顺利启动的

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

更多阅读