手动给java项目打war包

90 阅读1分钟

前言

这件事的起因是一个BUG

笔者在测试SpringMvc使用JSON传参时,明明配好了jackSon依赖,可是依旧显示无法解析JSON格式

检查完maven给打包的target文件确认无误后(依赖正常打包) 后。 开始怀疑是在tomcat打包时出现了问题。 因为我把依赖已经导入了,如果依赖正常(我还没蠢到去怀疑大家都在用的依赖出问题)。不可能出现无法解析。

既然maven已经把依赖打进去了,自然不可能是maven的问题。

开始解决

找到tomcat部署的包的位置D:\Project\SpringMvc6\out\artifacts\pro_01_war_exploded

一般来讲它给你默认打包的包名都是包含_war_exploded字符的,打开内部,发现lib文件夹(放依赖的),果然没有JSON解析的。甚至连我之前的lomback都没有(不过听说lomback不会被打包,暂时不讨论)


好了,找到了问题的关键,手动打包吧

真该死啊,真不知道IDEA抽什么风,maven打包没问题,这个不会打包了???

  1. 打开模块设置

war01.png 2. 搞个新的

war002.png

重点此时呢,你就会发现,他这里没有提示了,正常是有的。如果上面的选项:Web Application:Exploded有提示,选上面那个也一样,上下两个没有区别

  1. 选择想要的模块 重点这一步要注意,一定把右侧你要选的项目中包含的class以及lib中的依赖全部选进去,代码如果后来写新的会加进去,但是如果有依赖,他是不会自动打包进去的,需要重弄

war003.png

  1. 给tomcat装上新的包

war04.png