配置SpringBoot方便的切换jar和war的方法示例
网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式。
jar到war修改步骤
pom文件修改
- packaging配置由jar改为war
- 排除tomcat等容器的依赖
- 配置web.xml或者无web.xml打包处理
入口类修改
- 添加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
修改入口类
- 入口类继承SpringBootServletInitializer
- 重写configure方法
使用@Profile注解,当启用war配置的时候,初始化Servlet。
publicclassApplicationextendsSpringBootServletInitializer{ publicstaticvoidmain(String[]args){ SpringApplication.run(Application.class,args); } @Profile(value={"war"}) @Override protectedSpringApplicationBuilderconfigure(SpringApplicationBuilderapplication){ returnapplication.sources(Application.class); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。