SpringBoot之打包成war包部署到tomcat
阿新 • • 發佈:2019-02-10
SpringBoot打包成war包部署到tomcat
小編花費了九牛二虎之力,總算把SpringBoot專案成功打包成war包,其中不免遇到了一些小狀況,特寫此文,以便其他小夥伴們不要走我的老路,避免重複這些小錯誤:
- 配置檔案(本地部署)
- 啟動類(war包部署)
- war包部署pom.xml新增
- maven命令生成war包(跳過測試)
- war部署到tomcat
- 配置檔案(本地部署)
這裡呢,是我們偉大的springboot的配置檔案需要做的一些配置,即使似乎跟打包沒有半毛錢關係,但是小編還是在這裡強調一下,大多數情況下,maven是預設進行專案測試的,請確保在打包成war前,資料庫配置正確,以免入坑。
user = name
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/mj
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql = true
- 啟動類(war包部署)
接下來呢,要想springboot專案知道我們的意圖,so,我們要引導我們的專案,告訴他我們要打包成war包,在此我們需要繼承SpringBootServletInitializer類重寫他的configure方法。告訴他我們要怎樣啟動它,生成war包需要的相關檔案
package com.job;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
@ServletComponentScan
public class JobManagementApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(JobManagementApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(JobManagementApplication.class, args);
}
}
- war包部署pom.xml新增
接下來,我們要為maven的pom.xml新增相關的依賴配置:
首先要把<packaging>jar</packaging>
改為以下
<packaging>war</packaging>
其次還有新增以下依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
- maven命令生成war包(跳過測試)
mvn clean package -Dmaven.test.skip=true
- war部署到tomcat
重新命名生成的war包為ROOT.war,部署到tomcat的webapps檔案目錄下(確保webapps目錄下沒有其他ROOT資料夾)
tips:雲伺服器上部署時確保連線資料庫配置正確,否則專案跑不起來。
如有疑問,可以留言,謝謝