首页 > 技术文章 > 如何将springboot工程打包成war包并且启动

qwg- 2021-09-07 09:29 原文

将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即 可访问。

1、pom.xml配置修改

  <packaging>jar</packaging>

  //修改为
  <packaging>war</packaging>

2、pom文件添加如些依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
3、排除springboot内置的tomcat干扰
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
说明:为什么要这样排除,就是springboot工程引入spring-boot-starter-web之后,会内嵌一个tomcat,那我们呢就不用这个内嵌tomcat,而是打包成war包后部署到外部的tomcat上
4、改造启动类
@SpringBootApplication
@MapperScan("com.lagou.springboot_01_demo.mapper")
public class Springboot01DemoApplication extends SpringBootServletInitializer {

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

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Springboot01DemoApplication.class);
}
}
说明:启动类在原有基础上 1、extends SpringBootServletInitializer;2、重写configure方法 

5、pom文件中不要忘了maven编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>

</build>

6、在IDEA中使用mvn clean命令清除旧的包,并使用mvn package生成新的war包
7、使用外部Tomcat运行该 war 文件(把 war 文件直接丢到 tomcat的webapps目录,启动 tomcat)
可以在idea中如下操作:

 


 


 

 

 

 

 

 

 


 之后点击启动tomcat即可,然后就可以在浏览器上访问。



 

推荐阅读