spring-boot打包成war

本文介绍如何将SpringBoot项目从默认的JAR包形式转换为WAR包形式进行部署,并提供了详细的步骤链接。

springboot默认打包成jar,若想打包成war包参考以下博文

http://blog.youkuaiyun.com/hao134838/article/details/71436834

### 解决方案 为了确保Spring Boot项目打包时能够包含`lib-provided`中的依赖,可以采取特定的Maven配置策略。默认情况下,在构建WAR包时,具有`provided`范围的依赖项会被放置于`WEB-INF/lib-provided/`目录下而不是`WEB-INF/lib/`中[^3]。然而,Tomcat只会加载位于`WEB-INF/lib/`下的JAR文件,这导致了`lib-provided`内的依赖无法被正确识别。 一种解决方案是在pom.xml中调整spring-boot-maven-plugin插件设置来改变这种行为: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 配置重新分类 provided 范围的依赖 --> <configuration> <classifier>exec</classifier> <excludes> <exclude> <groupId>*</groupId> <artifactId>*</artifactId> <scope>provided</scope> </exclude> </excludes> </configuration> </plugin> </plugins> </build> ``` 上述代码尝试通过排除所有标记为`provided`作用域的依赖项并将其视为常规依赖项处理的方式解决问题。不过需要注意的是这种方法可能并不适用于所有的场景,特别是当这些库已经在运行环境中存在时可能会引发冲突。 另一种更推荐的方法是利用自定义类加载器或修改部署环境以支持从其他位置加载所需的第三方库。如果目标容器允许这样做,则可以在启动参数中指定额外的classpath路径指向实际存储这些提供者级别的JAR的位置。 对于那些确实需要被打包进最终制品的情况,考虑更改其声明的作用域至compile或其他适合的形式可能是更为直接有效的办法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值