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

咱們都知道springBoot中已經內置了tomcat,是不須要咱們額外的配置tomcat服務器的,可是有時這也多是咱們的一個瓶頸,由於若是咱們須要對tomcat作集羣或者一些優化的話是很是不方便的,因此咱們仍然須要將springBoot的項目部署到外在的tomcat中,本文檔主要介紹一下如何將jar包轉換成war包。java

 

第一步、將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下了web

相關文章
相關標籤/搜索