将tomcat源码打包为源代码包

背景

题目听起来有点拗口,简单来说就是将tomcat的源代码打成src.jar。因为在开发过程中追踪代码到了tomcat的类就没有关联的类了,虽然是maven project,但是maven只会下载pom.xml中配置的源代码,不会下载tomcat源代码,后来突发奇想打算将tomcat源代码包关联到intellij idea的tomcat,以追踪源码,后来发现,此计行不通,intellij idea不会自动关联tomcat源码!不过间接学会了ant打源代码包。

步骤

  • 下载tomcat源码,svn或者zip包都可以,本人使用了zip形式,
    • 复制build.properties.default重命名为build.properties
  • 安装ant,编译的tomcat版本是7.0.61,官方文档推荐ant1.8.2,下载ant的bin版本,设置ANT_HOME ,并添加%ANT_HOME%\bin到path中
  • 配置jdk_home,必须是jdk1.6版本,否则出错
    • [javac] D:\tomcat_7.0.61_build\repository\tomcat7-deps\dbcp\src\java\org\a
      \tomcat\dbcp\dbcp\BasicDataSource.java:53: 错误: BasicDataSource不是抽象的,
      且未覆盖CommonDataSource中的抽象方法getParentLogger()
      [javac] public class BasicDataSource implements DataSource { [javac] ^
      [javac] D:\tomcat_7.0.61_build\repository\tomcat7-deps\dbcp\src\java\org\apa
      \tomcat\dbcp\dbcp\DelegatingStatement.java:46: 错误: DelegatingStatement不是
      象的, 并且未覆盖Statement中的抽象方法isCloseOnCompletion()
      [javac] public class DelegatingStatement extends AbandonedTrace implements S
      ement {
      [javac] ^
      [javac] D:\tomcat_7.0.61_build\repository\tomcat7-deps\dbcp\src\java\org\apa
      \tomcat\dbcp\dbcp\DelegatingPreparedStatement.java:57: 错误: DelegatingPrepar
      tatement不是抽象的, 并且未覆盖Statement中的抽象方法isCloseOnCompletion()
      [javac] public class DelegatingPreparedStatement extends DelegatingStatement
  • 进入到tomcat_src目录后,执行ant package-src-jar,就会打源代码包。package-src-jar是ant的target,配置在build.xml
    • <!-- Packages the source code in JARs to match the binary JARs -->
      <target name="package-src-jar"
      depends="build-manifests,build-tomcat-jdbc-src,package-src-jar-java7">
      <mkdir dir="${tomcat.src.jars}" />

效果

这里写图片描述

参考

Building Tomcat
让Intellij IDEA显示Servlet文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值