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下了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM