springboot 带有内置Tomcat 服务器,能够直接将项目打包成jar运行,运行命令为:java
java -jar demo.jar
可是若是在须要把项目达成war包该怎么办呢?下面是将springboot项目部署为war项目的一些步骤:
一、首先 在pom.xml中将打包形式 jar 修改成war
<packaging>war</packaging>
二、在pom.xml文件中添加下面的依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
三、设置,打包后的项目访问名称,在build节点里设置文件名 (这里是一个特别须要注意的地方,因为开始的时候是使用的单模块程序,因此能够对项目命名,可是在多模块打包中发现,若是添加项目名称 这个结点。打包好的程序在tomcat中运行的时候会发生错误,war 包的目录格式有问题)git
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>project name</finalName> </build>
四、因为咱们须要使用外部Tomcat服务器部署war包,因此不能使用建立项目的application.java 这个main方法了,须要重写一个相似于 web.xml 文件配置的方式来启动 Spring 应用上下文,此时咱们须要声明一个类,这个类的做用与在 web.xml 中配置负责初始化 Spring 应用上下文的监听器做用相似。github
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(application名称.class); }
而后在idea maven中运行package,或运行命令mvn package,在target目录下生成war包web
而后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,便可自动解压部署。
最后在浏览器中输入spring
http://localhost:[端口号]/[打包项目名]/
参考:https://blog.csdn.net/github_38151745/article/details/78707664浏览器