Spring-boot打war包部署到tomcat
阿新 • • 發佈:2018-12-31
1、maven專案,修改pom包
將
<packaging>jar</packaging>
改為
<packaging>war</packaging>
2、打包時排除tomcat.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId> org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
在這裡將scope屬性設定為provided,這樣在最終形成的WAR中不會包含這個JAR包,因為Tomcat或Jetty等伺服器在執行時將會提供相關的API類。
3、註冊啟動類
建立ServletInitializer.java,繼承SpringBootServletInitializer ,覆蓋configure(),把啟動類Application註冊進去。外部web應用伺服器構建Web Application Context的時候,會把啟動類新增進去。
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
最後執行,注意必須進到專案所在目錄,與 pom.xml 檔案同級
mvn clean package -Dmaven.test.skip= true
會在target目錄下生成:專案名+版本號.war檔案,拷貝到tomcat webapps目錄中啟動即可。
啟動時專案名為war包檔名,如 spring-boot-mybatis-mulidatasource-1.0.0.war,訪問時就是這樣:
部署成功訪問如上圖。
參考連結:http://www.ityouknow.com/springboot/2017/05/09/springboot-deploy.html