使用Maven编译Tomcat源码

使用Maven编译Tomcat源码

准备工作

  • 编译工具:Intellij Idea 15.0.2
  • Tomcat版本:7.0.69 下载链接
  • JDK版本:1.7.0_80
  • Maven版本:3.05

编译步骤

1. 在工作空间中建立目录 TomcatSource,下载源码解压到此文件夹,完成后目录结构如下

TomcatSource
|--bin
|--conf
|--java
|--modules
|--res
|--test
|--webapps
|--...
2. 在TomcatSource目录下添加pom.xml,内容如下



4.0.0
org.apache.tomcat
Tomcat7.0
Tomcat7.0
7.0

Tomcat7.0
java
test


java




test




org.apache.maven.plugins
maven-compiler-plugin
2.3

UTF-8
1.6
1.6






junit
junit
4.12
test


ant
ant
1.7.0


wsdl4j
wsdl4j
1.6.2


javax.xml
jaxrpc
1.1


org.eclipse.jdt.core.compiler
ecj
4.2.2


org.easymock
easymock
3.3



3. 将项目使用Intellij Idea 打开(对应eclipse导入项目),使用maven工具编译。
4. 打开Bootstrap.java类配置启动参数,VM options 下填写

-Dcatalina.home=TomcatSource -Dcatalina.base=TomcatSource -Djava.endorsed.dirs=TomcatSource/endorsed -Djava.io.tmpdir=TomcatSource/temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=TomcatSource/conf/logging.properties

5. DEBUG模式启动 Bootstrap.java 类的main方法,结束。

注意事项

  1. 本方法使用的是maven方式编译,如果使用Ant方式编译参见 Tomcat官网-->Documentation-->Development-->Building
  2. 编译特定版本的Tomcat源码需要的JDK版本不同,具体同时可以在Building页面参见。
  3. 工作目录中 TomcatSource 可以随意命名,不过在添加VM options参数的时候需要修改指定名称保持一致
  4. 添加的pom.xml文件中更改了maven项目默认的sourcetest的目录(src/main/javasrc/main/test)修改为 javatest
  5. pom.xml文件中添加的依赖是tomcat编译过程中需要依赖的包,也许你在使用maven编译的时候会发现依旧有错误,如果是test目录相关文件可以删除,也可以去常见的maven中央仓库去寻找下载相关依赖。
  6. maven工具编译是指在TomcatSource目录下打开命令行工具(cmd窗口)使用命令 mvn clean install 去编译。
  7. VM options参数意义:startup.bat调用catalina.bat,catalina.bat会传递一堆参数 并且传递给Bootstrap.java类的main方法,这里传递的参数就是VM options。
  8. VM options参数获取的方法:

在bin/catalina.bat 或者 catalina.sh 文件中找到下面一行

if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
然后在这行下添加以下命令

echo Tomcat VM options start
echo %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
echo Tomcat VM options end
pause
保存退出,运行startup.bat,在cmd窗口在start和end 中间的输出就是VM options

posted @ 2016-05-05 19:26  coldridgeValley  阅读(2247)  评论(0)    收藏  举报