需求:数据猫项目开发使用的是JBolt创建创建出来的maven工程,基于Undertow开发,开发过程全程没有Tomcat的影子,其实部署也不需要tomcat了。
但是,中间出现一个bug需要看日志的时候,Undertow的不是太方便,因为调试的时候需要直接把本地的一个Service里修改后,把class文件替换就行了,直接去上传替换线上环境里的一个class文件。
一、先看看,在Eclipse中 JBolt执行打包后,Undertow的项目打包结构。
config:放所有配置文件 就是在maven项目中java.main.resources下的各种配置文件
lib:放所有依赖第三方库和本项目的所有class文件打包成的一个jar
webapp:放所有前端模板,静态资源等文件,可访问资源等。
二、再看看tomcat下的War包部署结构
WEB-INF下方的是各种配置文件,第三方Lib库,和所有class文件 根目录_view里是所有前端可访问页面、模板和资源等
现在问题在于,Undertow打包是把整个web项目下的classes里的class文件打包成了一个jar了,没法直接部署到tomcat,但是熟悉tomcat下部署目录结构的都知道,把需要的文件放在该放的位置就行了。
先做个预告:JBolt插件后面增加不管基于什么tomcat、jetty、还是Undertow开发的项目,都可以打包成任意需要的环境,比如创建环境是Undertow,但是需要部署的时候就右键 打包成Tomcat-War 就OK了。
现在,来说说数据猫是怎么把Undertow下的结构,部署到Tomcat上的。
步骤:
1、在tomcat上的部署目录里创建War包解压后的结构
在WEB-INF下创建
将Undertow目录config下的配置文件 复制到这个classes下,将undertow下的所有的lib下的jar复制到tomcat部署目录lib里
web.xml从开发环境IDE里复制进去。
最后将Undertow下的webapp下的所有内容复制到这个WEB-INF同级目录。
MATA_INF下创建一个文件:
内容就填写两行吧:
这样就搞定了。
启动正常,运行。
如果嫌弃每次更换lib中的项目打包Jar麻烦的话,可以在maven项目target目录里找到classes 直接复制上传到tomcat下的classes里。
上述步骤详细页啰嗦,所有JBolt插件后面会增加一键搞定这套流程。
敬请期待。
注:另外今天开发者计划特惠活动还有11小时结束,欢迎加入。
http://www.jfinal.com/share/1696