springboot 帶有內置Tomcat 服務器,可以直接將項目打包成jar運行,運行命令為:
java -jar demo.jar
但是如果在需要把項目達成war包該怎么辦呢?下面是將springboot項目部署為war項目的一些步驟:
1、首先 在pom.xml中將打包形式 jar 修改為war
<packaging>war</packaging>
2、在pom.xml文件中添加下面的依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
3、設置,打包后的項目訪問名稱,在build節點里設置文件名 (這里是一個特別需要注意的地方,由於開始的時候是使用的單模塊程序,所以可以對項目命名,但是在多模塊打包中發現,如果添加項目名稱 這個結點。打包好的程序在tomcat中運行的時候會發生錯誤,war 包的目錄格式有問題)
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>project name</finalName> </build>
4、由於我們需要使用外部Tomcat服務器部署war包,所以不能使用創建項目的application.java 這個main方法了,需要重寫一個類似於 web.xml 文件配置的方式來啟動 Spring 應用上下文,此時我們需要聲明一個類,這個類的作用與在 web.xml 中配置負責初始化 Spring 應用上下文的監聽器作用類似。
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(application名稱.class); }
然后在idea maven中運行package,或運行命令mvn package,在target目錄下生成war包
然后把target目錄下的war包放到tomcat的webapps目錄下,啟動tomcat,即可自動解壓部署。
最后在瀏覽器中輸入
http://localhost:[端口號]/[打包項目名]/
參考:https://blog.csdn.net/github_38151745/article/details/78707664
https://blog.csdn.net/zhoucheng05_13/article/details/77915294