springboot项目通过maven命令打war包或者jar包

springboot默认打包形式是生成可执行jar包,如果想实现本地开发和测试打jar包,生产环境打war包,就需要更改几个地方

1. 复制并重命名启动类,修改内容
2. pom文件设置启动类、打包方式改成war、排除内置tomcat
3. 执行maven打包命令时加上 -f pom_xxx.xml命令(指定pom文件)

上代码!

1. 复制并重命名新启动类,修改内容


image.png
  • 原启动类(用于开发调试)
@SpringBootApplication
public class TrainTicketApplication {
    public static void main(String[] args) {
        SpringApplication.run(TrainTicketApplication.class, args);
    }
}
  • 新启动类 (打war包部署tomcat做适配)
@SpringBootApplication
public class TrainTicketApplication_Tomcat extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(TrainTicketApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(TrainTicketApplication.class);
    }
}

2 . pom文件设置启动类、打包方式改成war、排除内置tomcat,同样也需要复制一份pom文件,并重命名,修改文件内容


image.png
war

        
        com.zhaoqing.trainticket.TrainTicketApplication_Tomcat
    

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

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

        
        train-ticket
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
  1. 执行maven打包命令时加上 -f pom_xxx.xml命令(指定pom文件)
  • 本地调试时打jar包的maven命令:
mvn clean package -Dmaven.test.skip=true
  • 线上部署时打war包的maven命令:
mvn clean package -Dmaven.test.skip=true -f pom_tomcat.xml

你可能感兴趣的:(springboot项目通过maven命令打war包或者jar包)