07-23 JAVA JAVA 通用 Spring Boot Maven 多 Profile 灵活切换 JAR/WAR 打包指南 基于 Maven Profile 机制,定义默认激活的 jar profile 和手动激活的 war profile。在 war profile 中覆盖 packaging 为 war,设置 `boot.layout=WAR`,并将 `spring-boot-starter-tomcat` 设为 provided 以避免内嵌容器冲突。启动类需继承 `SpringBootServletInitializer` 并重写 `configure` 方法,使 WAR 模式可被外部 Tomcat 识别;JAR 模式下 `main()` 正常启动,二者互不干扰。构建命令:默认 `mvn package` 生成 Fat JAR;`mvn package -P war` 生成可部署 WAR。该方案实现一套代码同时打包为 JAR(本地开发/Docker)和 WAR(传统 Tomcat 集群),产物支持 `java -jar` 和容器部署两种运行方式。 8