intellij idea打包並部署到外部的tomcat
阿新 • • 發佈:2021-08-31
一、將專案打包成war格式,修改pom.xml
1、在其中新增下列程式碼
<packaging>war</packaging>
2、檢查是否有這兩個外掛, maven-war-plugin 和 spring-boot-maven-plugin
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.1</version> </plugin> </plugins> <!-- 打包成的專案名--> <finalName>tomcattest</finalName> </build>
3、點選右側的package打包成 war 包,在專案的target目錄可以看到生成的war包
4、開啟cmd,到war 包所在目錄 執行命令,專案可以正常啟動並能成功訪問。
java -jar tomcattest.war
5.釋出到外部的tomcat
把tomcattest.war放到tomcat下的webapp下,重啟tomcat,再次訪問發現訪問不到,報404錯誤。
6、解決當前這個在外部tomcat沒辦法執行起來並訪問的問題,方法是修改啟動類。
讓專案啟動類SpringBootStartApplication 繼承自SpringBootServletInitializer
說明:
A.在外部容器部署的話,不能依賴於Application的main函式
B.在啟動類中繼承SpringBootServletInitializer並實現configure方法,以類似於web.xml檔案配置的方式來啟動Spring應用上下文
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class TomcattestApplication extends SpringBootServletInitializer { @Override public SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) { return applicationBuilder.sources(TomcattestApplication.class); } public static void main(String[] args) { SpringApplication.run(TomcattestApplication.class, args); } }
7、再次打包釋出到外部的tomcat。我專案的埠好設定的9001。成功訪問。
8、完結散花!
參考:
https://blog.csdn.net/weixin_34067102/article/details/86003918
IntelliJ IDEA Sringboot 專案部署到外部Tomcat伺服器 - 南下玩技術 - 部落格園 (cnblogs.com)