Tomcat源码编译和环境搭建

关于tomcat源码的编译和环境搭建自己也是拖了一段时间,今天还是硬着头皮来做一做,还是有所收获。
tomcat源码的编译还是首选ant,作为apache的顶级项目ant,可以参见下面的链接进行下载,下载一个二进制运行包即可。

然后就需要在path中配置了。

简单的校验

C:\Users\jeanron>ant -version

Apache 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=on

proxy.host=proxy.domain

proxy.port=8080

proxy.user=username

proxy.password=password

当然了jdk版本也是必须的,我在本地使用的1.6.
然后就开始build。

D:\tomcat7>ant

Buildfile: D:\tomcat7\build.xml

build-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\webapps

download-compile:

testexist:

[echo] Testing  for D:/tomcat7/output/tomcat-native-1.1.33/tomcat-native.ta

r.gz

downloadfile-2:

proxyflags:

setproxy:

[echo] Using proxy.domain:8080 to download

t/tomcat-connectors/native/1.1.33/source/tomcat-native-1.1.33-src.tar.gz

trydownload.check:

trydownload:

[get] Getting:

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: conn

ect

at java.net.DualStackPlainSocketImpl.connect0(Native Method)

at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketI

mpl.java:79)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.ja

va:339)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocket

Impl.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 FAILED

D:\tomcat7\build.xml:2686: The following error occurred while executing this lin

e:

D:\tomcat7\build.xml:2790: Compile failed; see the compiler error output for det

ails.

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源码的路径即可。导入源码的截图如下:

Tomcat源码编译和环境搭建

当然了还有依赖的包。

Tomcat源码编译和环境搭建

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

INFO: Deploying web application directory C:\tomcat7\webapps\ROOT

Jun 29, 2015 11:47:20 PM org.apache.catalina.startup.TldConfig execute

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/68bc1fe7a45d2028edfe2641c73de690.html