tomcat6的编译和导入myeclipse
声明:近期在学习tomcat6的源代码,网上搜索了些相关的资料,并自己操作了下进行了对应的汇总。如今总结例如以下
本文目的:编译tomcat6源代码+导入tomcat6源代码到myeclipse
測试环境:
Jdk:jdk1.7.0_80
Axis:axis-bin-1_4
Ant:apache-ant-1.9.2
Myeclipse:2015
Tomcat:apache-tomcat-6.0.45
步骤:
一:下载tomcat的源代码包
这里能够通过svn下或者直接到tomcat官网下载,我这里是直接到官网下载的。
这里我用的是src不是tar版本号的。
然后将源代码包解压到指定的目录下。
我的解压到了这个文件夹下,这里须要注意的是output文件夹是编译时生成的。build.properties是我后面重命名的,这个文件原来是build.properties.default文件。
Tomcat默认使用ant进行编译的,熟悉ant的人应该知道怎么解决,就是通过配置文件build.properties来 设置。该配置文件在Tomcat源代码路径下为“build.properties.default” ,我们能够去掉.default后缀或直接新建一个build.properties都能够,当然我选择了前者,将“build.properties.default” 改动为“build.properties” 打开, 改动里面的base.path属性值为我们希望的下载路径并加入proxy代理配置(我这里仅仅是改动了下载的路径
就是执行ant download命令时下载的路径。并没有设置代理),格式例如以下:
二:ant的安装
这里能够參考下网上介绍的,我这里仅仅大概说下步骤
2.1首先到官网下载ant的zip包。然后解压缩
2.2配置环境变量
2.3验证是否成功安装
三:tomcat的编译
在Tomcat编译过程中,Ant会让我们下载一些必要的依赖项目,base.path文件夹就是用来保存这些项目文件的。这个我们在第一步中已经配置过。改动完base.path后,我们回到MS-DOS窗体。切换到Tomcat源码所在文件夹,然后执行ant download命令,例如以下图所看到的:
我这里比較顺利,第一次执行的时候报了错误,是connection timeout的错误。原因就是连接超时了,我又又一次执行了一次ant download命令就成功了。
这个时候你能够看到base.path指定文件夹下已经多出了好些文件夹。ant download命令成功后运行ant命令
我这里出了部分警告,只是能够成功运行。到这个地方tomcat的源代码就编译成功了。
附:
①假设你改动了部分源代码,须要又一次编译 ,直接进入到源代码路径。运行ant命令就可以。
②假设须要编译servlet和jsp API文档,进入到源代码路径下运行例如以下命令:
ant -f dist.xmldist-javadoc
③假设须要编译extras扩展功能(commons-logging,webservices etc.)。进入到源代码路径下运行例如以下命令:
ant -f extras.xml
④假设须要编译成release版本号。进入到源代码路径下运行例如以下命令:
ant -f dist.xmlrelease
四:导入tomcat到myeclipse
4.1打开myeclipse新建javaproject
最初的时候仅仅有src目录和JRE System Library(我这里用的jdk1.7 用1.6后面启动的时候回报错这个详细看版本号匹配)
4.2javaproject新建完毕后,选中javaproject。
import->file system
在From directory选择tomcat源代码,选择java和test(假设你须要測试的话选择test)。例如以下图:
在into folder中选择我们刚新建的tomcat6,finish。
note:将java、test设置成source folder。java build path ->Source->Addfolder...->选择java和test。
如今项目结构例如以下图所看到的
4.3导入jar包
上面那些不爽的红叉是由于缺少jar的原因,我们如今须要那些jar包呢?
test须要junit.jar。这个直接用eclipse里面的就可以。我是从第一步中保存的junit中获取的
java中须要:
· ant.jar 这个能够从下载的ant中获取
· jaxrpc.jar 这个能够从aix2的包中获取
· org.eclipse.jdt.core_3.3.1.v_780_R33x.jar 这个能够从ant download下载的jdt.loc=http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.3.1-200709211145/eclipse-JDT-3.3.1.zip这个包中获取
· wsdl4j-1.5.1.jar这个能够从aix2的包中获取
导入后就清爽了!
4.4启动tomcat
注意我測试的时候发现这个时候myeclipse的工作空间中是不能进行tomcat插件的配置的。
找到类:org.apache.catalina.startup包中的Bootstrap类。
run as:在Arguments的VM arguments中设置
-Dcatalina.home="E:\job\tomcatsrc\apache-tomcat-6.0.45-src\output\build"
然后就能够启动了!
上面的路径依据自己的实际情况。
同理stop的时候配置成stop然后run就能够了。
tomcat6的编译和导入myeclipse的更多相关文章
- Eclipse 如何导入MyEclipse的项目
Eclipse 如何导入MyEclipse的项目 CreateTime--2018年3月8日09:53:55 Author:Marydon 1.Eclipse导入MyEclipse的项目方法,跟导 ...
- Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解 ...
- Eclipse导入MyEclipse创建的WEB项目无法识别的解决方案
Eclipse导入MyEclipse创建的WEB项目无法识别的解决方案
- Tomcat8源码编译及导入Eclipse中研究
最近因为需求需要修改Tomcat中的某些功能,无奈只能研究那部分源码然后稍作修改. 目前Tomcat最新版是8.0,下载了源码包,编译并导入Eclipse中研究比较方便. 1. Tomcat8源码编译 ...
- 编译并导入OpenSSL
编译并导入OpenSSL 1. 首先,需要运行脚本生成OpenSSL库,参考 https://github.com/x2on/OpenSSL-for-iPhone 示例 2. 运行脚本生成静态库 下一 ...
- Hadoop2.5.2源码编译及导入Eclipse
前言:由于官网提供的64位hadoop是没有编译的,所以当我们用到64位的hadoop时,需要在自己的64位linux系统上编译hadoop源码.另外,要想在eclipse里查看hadoop源码,修改 ...
- JavaWeb项目导入MyEclipse后变为JAVA项目项目【解决方法】
问题描述:之前有个项目是Java web的项目,但是后来我导入到我电脑里的myEclipse里后就变成了Java项目.查找了资料解决了,网上大部分都是说在eclipse里解决这个问题,在myEclip ...
- macOS(Sierra 10.12)上Android源码(AOSP)的下载、编译与导入到Android Studio
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 将项目导入myeclipse后 tortoise svn 右键项目不能更新和提交
使用 tortoise svn客户端将svn服务器上的项目checkout之后正常,可以更新也可以提交:当将这个项目导入MyEclipse之后,不能更新和提交了只出现svn升级工作副本这一字样:网上搜 ...
随机推荐
- 【Other】最近在研究的, Java/Springboot/RPC/JPA等
我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo ...
- du 命令秘籍
导读 du命令是检查硬盘使用情况,统计文件或目录及子目录使用硬盘的空间大小.参数的不同组合,可以更快的提高工作效率,以下仅列出了经常使用到的参数,如需更详细的信息,请用man du命令来获得. 1.命 ...
- Typescript declaration: Merge a class and an interface
参考: https://stackoverflow.com/questions/47670959/typescript-declaration-merge-a-class-and-an-interfa ...
- hadoop fs:du & count统计hdfs文件(目录下文件)大小的用法
hadoop fs 更多用法,请参考官网:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html 以下是我的使用hadoop fs -du统计文 ...
- RS开发值提示默认为当前月
在报表的开发过程中,按月查询数据,但是由于数据仓库中涉及多年历史数据,而用户最关心的却是最近的数据,针对这个情况.当用户第一次点击报表想看到的就是当前月的数据,那么如何去做呢? 下面用一个小例子来实战 ...
- linux 文件查找,which,whereis,locate,find
linux 文件查找,which,whereis,locate,find 一:which 主要用于查找可执行命令的所在位置: 如图,查找命令 ls的目录: 二:whereis 主要用于查找命令的帮助文 ...
- wepy - 安装less/sass
关于sass\less,在wepy文档里寻找 演示安装,默认已经安装了less,我们需要安装的是scss 安装less或scss yarn yarn add wepy-compiler-sass np ...
- 设置Treeview背景色的问题1
有没有哪位兄弟在VB中使用sendmessage对TreeView改变背景色?我现在遇到一个问题,如果把linestyle设为1 的时候,展开节点的时候root部位会 有一个下拉的白色块,如果设为1 ...
- 解决 vue 的缩进问题 及 vue 的 sass 调用 mixin 函数
1.解决 vue 的缩进问题 配置 eslint , 只要要eslint 对应的值为 0,则 eslint 将不会对其进行检测 (.eslintrc.js -- rules ) A. 不检测 缩进 ...
- mysql 运行计划explain具体解释
explain主要是用来获取一个query的运行计划,描写叙述mysql怎样运行查询操作.运行顺序,使用到的索引,以及mysql成功返回结果集须要运行的行数.能够帮助我们分析 select 语句,让我 ...