编译tomcat
来源:互联网 发布:代销和寄销 知乎 编辑:程序博客网 时间:2024/06/05 16:23
1. 下载tomcat源码: git clone https://github.com/apache/tomcat ,tomcat版本是9
2. 本地需要有ant服务, 且版本要求大于 1.9.5
3. 直接编译
cd ${tomcat.source}
ant
4. 编译成eclipse工程
mv build.properties.default build.properties
cd ${tomcat.source}
ant ide-eclipse
执行 ant ide-eclipse 会报错:
[get] Error getting http://downloads.sourceforge.net/cglib/cglib-nodep-2.2.3.jar to /Users/mengxiansen/tomcat-build-libs/download-1519080988.tmptomcat/build.xml:2784: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target产生这个错误的原因是编译tomcat时需要从 sourceforge.net 下载依赖包,协议用的是http,但是 sourceforge 目前已经改成了https 所以导致下载失败,提示是没有证书解决方案:(1)通过浏览器手动下载(2)在本地搭建apache或者nginx等web服务,将(1)中手动下载的包放到web服务器下(3)修改build.properties 中相应key的value, 如#cglib.loc=${base-sf.loc}/cglib/cglib-nodep-${cglib.version}.jarcglib.loc=http://localhost/cglib-nodep-2.2.3.jar需要手动下载的有
http://downloads.sourceforge.net/easymock/easymock-3.2.ziphttp://downloads.sourceforge.net/cglib/cglib-nodep-2.2.3.jar5. 打开eclipse 新建一个workspace
打开Preferences 在 Java->Build Path->Classpath Variables 中新增两个环境变量
TOMCAT_LIBS_BASE 和 ANT_HOME
TOMCAT_LIBS_BASE 配置 build.properties 中的 base.path 的值,默认是 ${user.home}/tomcat-build-libs 这个目录下存储的是第4步执行 ant ide-eclipse 时候下载的依赖包
ANT_HOME 配置成第2步安装ant的目录即可
6. 导入项目
打开 File->Import 选择 Existing Projects into Workspace 将tomcat导入
7. 查看 Run->Run Configurations->Java Application
可以看到 start-tomcat 和 stop-tomcat已经导入
查看 Arguments->VM arguments 将-Dcatalina.home=${project_loc:/tomcat-9.0.x/java/org/apache/catalina/startup/Bootstrap.java}/output/build改为-Dcatalina.home=${project_loc:/tomcat-9.0.x/java/org/apache/catalina/startup/Bootstrap.java}去掉output/build
8. 启动tomcat
找到 org.apache.catalina.startup.Bootstrap 类,并运行
看到信息
“信息: Server startup in 982 ms”
证明启动成功0 0
- 编译tomcat
- tomcat编译
- Tomcat源码编译学习
- 下载编译tomcat源码
- tomcat源码编译,调试
- windows编译tomcat
- 编译tomcat及常见问题
- Tomcat 源码编译
- Tomcat编译Servlet例子
- 编译tomcat源码
- Tomcat源码编译
- tomcat编译乱码问题
- tomcat源码编译
- eclipse+tomcat+jdk+编译
- 编译安装tomcat实践
- 手动编译tomcat
- ant编译tomcat
- ant编译tomcat
- Java 语言中的synchronized核心总结
- iOS 小菊花
- PHP和MySQL实现 定时器+消息队列
- 拆解Activity的启动和跳转另一个Activity的生命周期的变化
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
- 编译tomcat
- HashMap实现原理分析
- Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别
- Log4Net 调试日志, 数据库写入不进去
- 深度学习笔记1:神经网络 卷积神经网络
- 【UVa 11300】&【BZOJ 1045】【HAOI 2008】推一发
- BeanFactory not initialized or already closed
- Struts2学习(一)---初入门
- 第一章 绪论