spring boot项目打包成war在tomcat运行的全步骤
作者:Java工程师攻略 发布时间:2023-12-17 19:20:36
标签:springboot,打包,war
前言
使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat。现在需要将项目打包,并部署到服务器tomcat下面。
下面就让我们来一起把spring-boot项目按照平常的web项目一样发布到tomcat容器下,下面话不多说了,来一起看看详细的介绍吧
一、修改打包形式
在pom.xml里设置 <packaging>war</packaging>
二、移除嵌入式tomcat插件
在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
三、添加servlet-api的依赖
下面两种方式都可以,任选其一
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
四、修改启动类,并重写初始化方法
我们平常用main方法启动的方式,都有一个App的启动类,代码如下:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:
/**
* 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(Application.class);
}
}
五、打包部署
在项目根目录下(即包含pom.xml的目录),在命令行里输入:
mvn clean package
即可, 等待打包完成,出现[INFO] BUILD SUCCESS
即为打包成功。
然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。
最后在浏览器中输入
http://localhost:[端口号]/[打包项目名]/
发布成功
来源:https://www.jianshu.com/p/b5d80c29b8d9


猜你喜欢
- 本文实例为大家分享了java通过PDF模板填写PDF表单的具体代码,包括图片,供大家参考,具体内容如下需要用到的java包: it
- java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计
- 对变量延迟初始化Kotlin语言有许多特性,包括变量不可变,变量不可为空,等等。这些特性都是为了尽可能地保证程序安全而设计的,但是有些时候这
- 如何使用union多表分页条件查询当前项目有一个全局搜索的功能,需要涉及到7-8张主表,由于当前项目使用的是Jpa,所以我决定使用原生sql
- 1 需求Mybatis-plus使用@TableLogic注解进行逻辑删除数据后,在某些场景下,又需要查询该数据时,又不想写SQ
- SpringMVC实现RESTful风格RESTful中文释义为”表现层状态转换“,它不是一种标准,
- 本文实例分析了Android编程之TextView的字符过滤功能。分享给大家供大家参考,具体如下:TextView可以设置接受各式各样的字符
- 用类加载器的5中形式读取.properties文件(这个.properties文件一般放在src的下面)用类加载器进行读取:这里采取先向大家
- 对Element和Node有困惑是因为对xml整个结构不了解,以下作为一个简要概述:以下图为w3c.org网站的xml文档树图:从上图可以看
- 1.项目介绍本项目旨在打造一个基于RBAC架构模式的通用的、并不复杂但易用的权限管理系统。通过本项目可以较好的理解权限系统的常见业务同时学习
- 1 pom.xml文件注:热部署功能spring-boot-1.3开始有的<!--添加依赖--><dependency&g
- 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制
- 1.注解方式,yml文件配置上以下就可以直接使用mybatis-plus: mapper-locations: classpath:mapp
- 本文实例为大家分享了DatePicker日期滚动选择的使用,供大家参考,具体内容如下效果图为:1.dialog_date.xml:<?
- 本文实例讲述了Android实现捕获TextView超链接的方法。分享给大家供大家参考,具体如下:这里分享一篇捕获TextView超链接的文
- 说明本案例使用Unity2019.3.8f1与AndropidStudio3.6.3源码git地址:https://github.com/g
- Java多线程线程的创建1.继承Thread2.实现Runnable3.实现Callable使用继承Thread类来开发多线程的应用程序在设
- 之前已经为大家介绍过利用Java实现带GUI的气泡诗词特效,本文将为大家介绍另一种方法同样也可以实现气泡诗词的效果。下面是示例代码impor
- 将图片上传到webapp路径下 路径获取方式此方法获取到工程webapp文件夹下String contexPath= request.get
- 在日常生活中,我们使用maven下载需要的jar包,但是很多的时候由于中央仓库没有,所以我们没有办法下载到需要的jar包,手动去下载上,然后