SpringBoot项目如何打包部署到tomcat中去

SpringBoot项目如何打包成war包

       最近朋友做了一个springboot的小项目,需要发布到tomcat上去运行起来,但是打包的时候却发现,只能打包成jar包的形式,无法打包成war包,今天把自己的解决方案写下来,以供参考(eclipse版本):
       一共有两种解决方案:

方案一:

       如果是新建的项目,那么可以在一开始就选择打包方式为WAR,这样打包成的项目就是war包的形式。
SpringBoot项目如何打包部署到tomcat中去_第1张图片
查看我们的pom.xml文件:
SpringBoot项目如何打包部署到tomcat中去_第2张图片
SpringBoot项目如何打包部署到tomcat中去_第3张图片

此处的 provided代表了springboot自带的tomcat在编译的时候需要,而发布的时候忽略。
       启动类的目录中多了ServletInitializer.java类,大家可以私下去了解它,此处不做解释。

       这是第一种方案中打包war包的形式,以上这些步骤缺一不可,所以如果大家打包失败,可以看看pom.xml文件和启动类的目录是否与小编一致。

方案二:
       如果现在的项目已经是一jar包的方式建好了的项目,可以对项目做出以下调整修改:

  • 修改pom.xml文件

       1.修改打包方式:

war

       2.除嵌入式tomcat插件

       在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码:


    org.springframework.boot
    spring-boot-starter-web
    
    
        
            org.springframework.boot
            spring-boot-starter-tomcat
        
    

       3.添加servlet-api 的依赖:

dependency>
    javax.servlet
    javax.servlet-api
    3.1.0
    provided

       4.定义打包的项目名称(可不设置):


	    SpringBoot_MyBatis
		
	        
	            org.apache.maven.plugins
	            maven-surefire-plugin
	            
	                true            
	            
	        
	    
	
  • 修改启动类:
package com.demo;

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.support.SpringBootServletInitializer;

@SpringBootApplication
@MapperScan("com.demo.dao")
//继承SpringBootServletInitializer类
public class SpringBootMybatisApplication extends SpringBootServletInitializer{

	public static void main(String[] args) {
		SpringApplication.run(SpringBootMybatisApplication.class, args);
		System.out.println("启动成功");
	}
	/**
	 *新增此方法
	 */
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		// 注意这里要指向原先用main方法执行的Application启动类
		return builder.sources(SpringBootMybatisApplication .class);
	}
}

打包:
       选中项目,右键–>Run AS --> Maven Install即可,找到打包好的war包,放入tomcat的webapps目录下面,启动即可。

注意:
       我们的SpringBoot的项目访问路径为:http:ip/port/…后面的是requestMapping的值,而部署到了tomcat中访问的地址应该为:http:ip/port/项目名称/…

你可能感兴趣的:(踩坑之路)