原文链接:https://blog.csdn.net/u012489412/article/details/84023569
一、前言
大家都知道,springboot有2种部署方式,一种是打jar包部署,一种是打war包部署,jar包部署通常比较简单,war包部署麻烦一些,这里我就分享一下我部署war包的经验。
二、如何打war包
对于如何打war包,很多小伙伴,都知道,直接pom文件里,把那个jar换成war即可,是的,确实如此,但是还需要一点其它操作。
2.1第一步:修改pom文件的jar为war
打开我们的pom.xml文件,修改如下代码
<groupId>com.fm</groupId>
<artifactId>test</artifactId>
<version>0.0.1-dev</version>
<!--这里修改-->
<packaging>war</packaging>
2.2第二步:需要将嵌入式容器依赖项改为“provided”
provided
含义:被依赖项目理论上可以参与编译、测试、运行等阶段,相当于compile,但是再打包阶段做了exclude的动作。
适用场景:例如, 如果我们在开发一个web 应用,在编译时我们需要依赖 servlet-api.jar,但是在运行时我们不需要该 jar 包,因为这个 jar 包已由应用服务器提供,此时我们需要使用 provided 进行范围修饰。
如果你的项目中有依赖spring-boot-starter-tomcat包,需要将它标记为provided,如果你没有使用它,则不需要操作这一步
这里我们可以从官网的文档中看到。
这样就好了吗?不,这样还不够。还有一步操作
2.3第三步:继承SpringBootServletInitializer
这一步就是将我们的application继承SpringBootServletInitializer,
方法一:按照官网文档中的方式操作
本人亲试,打完包以后可以成功。
或者是,如果你不想这样,还有另外一种办法
方法二:新建一个类继承SpringBootServletInitializer
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { //此处的Application.class为带有@SpringBootApplication注解的启动类
return builder.sources(CcbhouseApplication.class);
}
}
本人亲试,这种方式也可以成功。
三、如何部署war包
完成以上步骤,我们就可以打包了,使用maven clean一下,然后再package或者install都可,打包成功后,将war包放进tomacat的webapp目录下,然后启动tomacat。
注意:启动后的访问地址,将不再是你在springboot里面配置的ip和端口号,而是你的tomacat的ip和端口号,除此之外还要带上war包名
例如:我的war包叫test.war,我的tomacat默认的ip是127.0.0.1,端口号默认为8080,我的访问地址就是:http://127.0.0.1:8080/test
好了到这里就结束了,当初做这个时,发现找了很多资料,描述的都不是很清楚,这里记录一下,也分享给大家,希望帮助大家节省时间,减少烦恼。我个人建议,还是先去官网上查看一下官方文档,springboot版本更新的比较快,可能不同版本的区别不同。建议以官方文档为准。
这里分享一下官网地址:springboot官网链接:https://spring.io/projects/spring-boot#learn
https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/
————————————————
原文链接:https://blog.csdn.net/u012489412/article/details/84023569