Spring boot 的 web 项目发布到 tomcat 一定要打包成War包吗?

最近在学Spring boot,用来网上的例子,默认配置是打包成Jar包。
http://start.spring.io/ 网站上提供了生成初始项目的功能,默认选择的是打包方式也是Jar包。

这在idea中进行开发中调试没有任何问题。
现在,我想去修改项目的前端,不想打开ieda。想直接把服务端部署到 tomcat。
在网上搜索了一下部署方式,能找到的都是将打包方式改成war包,然后还要修改配置,还要修改java代码。

对此,我感觉非常奇怪和不解:
既然发布到tomcat要用war包,为什么大家的默认配置却是jar包?
一般正常的流程,我认为从开发转到部署是不应该改代码的的,可以改配置,但也应该避免不必要的修改(比如发布时排除内嵌tomcat包),为什么我看到的发布方案都这样不友好?

对此还有其他疑问:
tomcat上发布Spring boot一定要用war包吗,或者用war包比其他方式好很多,都推荐用war包吗?
可以用jar包发布吗?
我记得tomcat上发布项目也可以不打包的用class文件静态文件,一个文件夹下去就可以了,Spring boot可以这么做吗?那些不好吗?为什么我没有搜索到有人这么做。

阅读 7.3k
3 个回答

jar 使用内嵌式web server (tomcat,jetty,undertow) ,由spring 初始化 webContext,Servlet,Filter 等

不管是打包成jar 还是 war 其实最终运行都是要解压的。 只是tomcat 作为一个 web 容器,当然用war格式打包比较好了。为什么要用war,因为war是在jar基础上专门为web 项目定制的包。

你也可以不打包,直接把整个解压好的项目复制到 webapp的目录下面。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题