配置SpringBoot方便的切换jar和war的方法示例

网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式。

jar到war修改步骤

pom文件修改

  1. packaging配置由jar改为war
  2. 排除tomcat等容器的依赖
  3. 配置web.xml或者无web.xml打包处理

入口类修改

  1. 添加ServletInitializer

特别注意:当改成war包的时候,application.properties配置的server.port和server.servlet.context-path就无效了,遵从war容器的安排。

配置pom

配置packaging

${pom.package}

修改build


${pom.packageName}



 org.apache.maven.plugins
 maven-war-plugin
 3.2.2
 
  
  false
 

排除容器


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

配置profile


 
  
  jar
  
   true
  
  
   jar
   ${project.artifactId}-${project.version}
   dev
  
  
   
    org.springframework.boot
    spring-boot-starter-tomcat
   
  
 
 
  war
  
   war
   ${project.artifactId}
   linux
  
  
   
    org.springframework.boot
    spring-boot-starter-tomcat
    provided
   
   
    javax.servlet
    javax.servlet-api
    4.0.1
    provided
   
  
 

修改入口类

  1. 入口类继承SpringBootServletInitializer
  2. 重写configure方法

使用@Profile注解,当启用war配置的时候,初始化Servlet。

public class Application extends SpringBootServletInitializer {

 public static void main(String[] args) {
  SpringApplication.run(Application.class, args);
 }

 @Profile(value = {"war"})
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  return application.sources(Application.class);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(配置SpringBoot方便的切换jar和war的方法示例)