0
点赞
收藏
分享

微信扫一扫

springboot打war包,成功部署


文章目录

  • ​​前沿​​
  • ​​一、修改pom.xml文件​​
  • ​​二、移除嵌入式tomcat插件​​
  • ​​三、添加servlet-api的依赖​​
  • ​​四、修改启动类,并重写初始化方法​​
  • ​​五、打包​​
  • ​​1. 方式一:maven命令​​
  • ​​2. 方式二:可视化打包​​
  • ​​六、部署​​
  • ​​七、修改打包默认名称​​

前沿

故事发生背景:最近帮老师的项目做了一个联调,项目是springboot项目,但是打包却打的是war包,这就不是很常见了,中间出了很多问题,便从网上找了不少资料,便总结出来流程,以便自己和他人方便使用。

一、修改pom.xml文件

​<packaging>jar</packaging>​​​ 改为 ​​<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>

因为​​spring-boot-starter-web​​ 依赖中有Tomcat 的依赖,点进去就可以看到,如下图

springboot打war包,成功部署_spring

三、添加servlet-api的依赖

在 pom.xml 中新增以下依赖:

<!--打war包引入的下面依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

四、修改启动类,并重写初始化方法

我们平常用 main 方法启动的方式,都有一个App的启动类,代码如下:

@SpringBootApplication
public class DemoFengfanliApplication{

public static void main(String[] args) {
SpringApplication.run(DemoFengfanliApplication.class, args);
}
}

我们需要类似于​​web.xml​​​ 的配置方式来启动 Spring 上下文了,在 Application 类的同级添加一个(自定义的)​​SpringBootStartApplication​​类,其代码如下:

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

/**
* 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(DemoFengfanliApplication.class);
}
}

五、打包

1. 方式一:maven命令

在项目根目录下(即包含pom.xml的目录),在命令行里输入:
​​​mvn clean package -Dmaven.test.skip=true​​ 即可, 等待打包完成,出现 [INFO] BUILD SUCCESS 即为打包成功。

2. 方式二:可视化打包

springboot打war包,成功部署_spring boot_02

六、部署

然后把​​target​​​目录下的​​war​​​包放到 ​​tomcat ​​​的 ​​webapps​​​ 目录下,启动 ​​tomcat​​​,即可自动解压部署。
最后在浏览器中输入

http://localhost:[端口号]/[打包项目名]/

发布成功

七、修改打包默认名称

配置​​configuration​​​ 中的 ​​finalName​​,就是打包后的默认名称。进行名称规范合理化。

<build>
<plugins>
<plugin>
<configuration>
<finalName>demo_fengfanli</finalName><!-- 打包后的war名称-->
</configuration>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>


举报

相关推荐

0 条评论