如何从源码构建tomcat-embed系列Jar包?
从Tomcat源码构建嵌入类Jar包的方法
方法一:使用Ant构建(适配Tomcat 8.x及以上版本)
- 下载与目标依赖版本匹配的Tomcat源码包(例如需要
tomcat-embed-core 9.0.x就下载Tomcat 9.x分支的源码),解压后进入源码根目录。 - 这些嵌入类Jar包属于Tomcat的专属模块,直接构建根Ant项目不会生成,需执行指定的Ant Target:
- 构建
tomcat-embed-core(包含tomcat-annotations-api):执行命令ant embed-core - 构建
tomcat-embed-el:执行命令ant embed-el - 构建
tomcat-embed-websocket:执行命令ant embed-websocket
- 构建
- 构建完成后,目标Jar包会统一输出到源码根目录的
output/build/lib/embed/路径下。
方法二:使用Maven构建(适配Tomcat 9.x及以上版本)
Tomcat从9.x版本开始支持Maven模块化构建,嵌入类模块集中在embed/子目录:
- 进入Tomcat源码根目录后,分别进入对应模块目录执行构建命令:
- 进入
embed/core/,执行mvn clean package -DskipTests,生成tomcat-embed-core.jar和tomcat-annotations-api.jar(位于该模块的target/目录) - 进入
embed/el/,执行mvn clean package -DskipTests,生成tomcat-embed-el.jar - 进入
embed/websocket/,执行mvn clean package -DskipTests,生成tomcat-embed-websocket.jar
- 进入
- 若需一次性构建所有嵌入模块,可在源码根目录执行
mvn clean package -DskipTests -pl embed -am,自动构建所有嵌入模块及其依赖。
注意事项
- 确保本地JDK版本符合要求:Tomcat 9.x需JDK 8+,Tomcat 10.x需JDK 11+,Tomcat 11.x需JDK 17+。
- 源码版本必须与目标依赖版本完全一致,避免出现兼容性问题。
内容的提问来源于stack exchange,提问作者atira
相关产品推荐
相关产品推荐

