Spring Boot Jar包转War包 部署到Tomcat下

原文:https://my.oschina.net/sdlvzg/blog/1562998

我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时这也可能是我们的一个瓶颈,因为如果我们需要对tomcat做集群或者一些优化的话是非常不方便的,所以我们仍然需要将springBoot的项目部署到外在的tomcat中,本文档主要介绍一下如何将jar包转换成war包。

第一步、将SpringBoot的项目的打包方式设置为war,修改pom.xml文件如下:

	<groupId>org.morecare</groupId>
	<artifactId>mc-api-system</artifactId>
	<version>0.0.1-SNAPSHOT</version>
    <!--由Jar包转为War包-->
	<packaging>war</packaging>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.4.1.RELEASE</version>
	</parent>
	<name>mc-api-system</name>
	<url>http://maven.apache.org</url>

第二步、移除内嵌的tomcat模块,以及添加tomcat-servelt-api依赖,但是为了我们在本机测试方便,我们还需要引入它,修改pom.xml文件如下:

<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>
<!--本机测试方便,添加tomcat-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>  
</dependency>
<!--添加移除内嵌的tomcat模块-->
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>tomcat-servlet-api</artifactId>
  <version>8.0.39</version>
</dependency>

第三步、添加war插件,用来自定义打包以后的war包的名称

<!-- 自定义war包名称 -->
<plugin>  
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-war-plugin</artifactId>  
    <configuration>  
        <warSourceExcludes>src/main/resources/**</warSourceExcludes>  
        <warName>parent</warName>  
    </configuration>  
</plugin> 

第四步、修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法

package org.morecare;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.support.SpringBootServletInitializer;

/**
 * Spring Boot启动类
 * @author Administrator
 */
@SpringBootApplication 
@ServletComponentScan 
@MapperScan("org.morecare.*.mapper") 
public class SystemApplication extends SpringBootServletInitializer {
	//修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法
	@Override  
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
        return application.sources(SystemApplication.class);  
    } 
	
	public static void main(String[] args) {
		SpringApplication.run(SystemApplication.class, args);
	}

}

完成以上四步,再通过Maven的打包方法,就可以把项目打包成War包,然后把项目部署到Tomcat下了

原文地址:https://www.cnblogs.com/shihaiming/p/9546107.html