Tomcat是用ant管理构建的,也可以写一个pom文件转化成maven方式。
一、下载Ant
既然是用ant管理构建,那就得先安装ant。
地址:https://ant.apache.org/bindownload.cgi
下载后,需要把他放入系统PATH下(安装JAVA方式)。
gedit /etc/profileexport ANT_HOME=ant路径export PATH=$ANT_HOME/bin:$PATHsource /etc/profile
如果安装成功,输入ant -version可以看到ant的版本
二、下载Tomcat9
地址:https://tomcat.apache.org/download-90.cgi
然后点击源代码进行下载,两个格式其中一个都行。
解压进入tomcat目录,由于tomcat依赖其他的jar,构建时候会自动下载,下载的路径在build.properties.default中可以配置,大概在89行有个base.path,也可以不做修改,默认是${user.home}/tomcat-build-libs。
三、ant构建
直接输入ant即可开始构建,这个过程中会下载依赖的jar,但是他不显示进度,可以到他的依赖jar下载目录,一直刷新查看他当前下载的文件大小。
比如这里正在下载wsdl4j-1.6.3.jar,临时存放到了/home/hxl/tomcat-build-libs/download-1686272198.tmp,去这个文件中不停看他的大小,如果长时间不动,就得换个网试试了。
或者手动下载,比如他先会输出testexist,判断这个jar是否存在,如果存在,则不下载。当手动下载好一个jar后,新建一个这个jar所在的文件夹,就是以下红色圈住的,把这个jar放入进入(更具不同jar而定)。重新ant一下,就好了。
当所有jar都下载好之后,剩下的工作一气呵成,经过ant噼里啪啦的一顿构建复制,会在其目录output/build下生成构建好的tomcat,这个目录就是我们常用的,进入bin可以直接./startup.sh启动Tomcat
四、Bootstrap
tomcat的启动类在java/org/apache/catalina/startup/Bootstrap.java中,编译后在bin/bootstrap.jar中,如果单纯的java -jar bootstrap.jar指定是启动不了的。因为有些依赖他不知道,所以需要catalina.sh来给他传入。catalina中指定了很多VM参数,如-classpath。下面的这段其中还向Bootstrap传入了start,Bootstrap会在main方法中进行判断。
五、IDEA 导入源码
直接File-Open-Tomcat源码就可以。
然后打开项目设置,指定一个编译输出目录.
最后对java文件夹进行源标识就可以了。
但是构建时候会报错,一是缺少jar包,二是webapps下默认的的项目导致。解决也很简单,首先新建一个lib文件夹,把上面下载的jar包都复制到此处,然后全部选中,右击Add as Library即可。并且删除webapps下所有的文件。
接着找到启动类,右击启动。
如果不出意外是这样的。这时候可以把war放入webapps下,进行调试以及学习。