1引言
在現代應用開發中,高效的打包和部署流程對于項目的開發、測試和上線至關重要。Spring Boot作為一種快速開發架構,提供了友善的打包工具和内嵌式的Web伺服器,使得打包和運作變得更加簡單。
本文将研究在Spring Boot應用中如何進行打包,幫助開發者建構高效的部署流程。
2打包Spring Boot 應用
Spring Boot 提供了多種方式來打包應用,常見的有 Maven 插件和 Gradle 插件。以下以 Maven 為例:
Maven 插件
在項目的 pom.xml 檔案中,添加 Maven 插件配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
通過執行以下指令進行打包:
mvn clean package
打包完成後,會在 target 目錄下生成可執行的 JAR 檔案。
3運作Spring Boot 應用
Spring Boot 應用可以通過多種方式運作,包括使用内嵌的 Web 伺服器、作為 WAR 檔案部署到外部 Servlet 容器等。
使用内嵌的 Web 伺服器
執行以下指令運作應用:
java -jar your-application.jar
//或
java –jar your-application.jar --server.port=80
//或
java –jar springboot.jar –-server.port=80 --logging.level.root=debug
這将啟動嵌入式的 Tomcat 伺服器,并運作 Spring Boot 應用。
外部 Servlet 容器
如果希望将應用部署到外部 Servlet 容器,需要将應用打包為 WAR 檔案。在 pom.xml 中添加以下配置:
<packaging>jar</packaging>
//修改為
<packaging>war</packaging>
引入依賴
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 去除内嵌tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加servlet的依賴-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
添加啟動類
如果是 war 包釋出,需要增加 SpringBootServletInitializer ⼦類,并重寫其 configure⽅法,或者将 main 函數所在的類繼承 SpringBootServletInitializer , 并重寫configure ⽅法
當時打包為 war 時上傳到 tomcat 伺服器中通路項⽬始終報 404 錯就是忽略了這個步驟!!!
@SpringBootApplication
public class JavaToJarAdmin extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(JavaToJarAdmin.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(JavaToJarAdmin.class);
}
}
然後執行 Maven 指令進行打包:
mvn clean package
打包完成後,會在 target 目錄下生成可執行的 WAR檔案。
使⽤外部 Tomcat 運⾏該 war ⽂件(把 war ⽂件直接丢到 tomcat 的 webapps⽬錄)
啟動tomcat
通路http://localhost:8080/war包名/
http://localhost:8080/JavaToJar-1.0-SNAPSHOT/
注意:
将項⽬打成 war 包,部署到外部的 tomcat 中,這個時候,不能直接通路 spring boot 項⽬中配置⽂件配置的端⼝。
application.yml 中配置的 server.port 配置的 是spring boot 内置的 tomcat 的端⼝号,打成 war 包部署在獨⽴的 tomcat 上之後,配置的server.port 是不起作⽤的。⼀定要注意這⼀點。
4結語
通過本文的介紹,你學會了如何使用 Maven 插件打包 Spring Boot 應用,靈活的打包和部署。結合内嵌的 Web 伺服器和外部 Servlet 容器,将有助于建構一個穩定可靠的部署流程,提高開發和運維效率。
來源:blog.csdn.net/m0_53127626/article/details/135696635