SpringBoot 提供了两种主要的打包方式:可执行 JAR 包和 WAR 包。可执行 JAR 包是 SpringBoot 的首选打包方式,它包含了所有依赖项并可以直接运行,无需额外的 Tomcat 或应用服务器。而 WAR 包则需要部署到外部的 Servlet 容器中运行。在大多数情况下,我们更倾向于使用可执行 JAR 包,因为它更加简单、易于部署和管理。
1. 使用 Maven 打包 SpringBoot 项目
对于使用 Maven 构建的 SpringBoot 项目,我们可以通过在 pom.xml 文件中添加 spring-boot-maven-plugin 插件来生成可执行 JAR 包。该插件会将项目及其所有依赖项打包成一个可执行的 JAR 文件。在命令行中运行以下命令即可完成打包过程:
mvn clean package
打包完成后,项目的 target 目录下会生成一个以 .jar 结尾的可执行 JAR 文件。
2. 使用 Gradle 打包 SpringBoot 项目
对于使用 Gradle 构建的 SpringBoot 项目,我们可以在 build.gradle 文件中添加 spring-boot-gradle-plugin 插件来生成可执行 JAR 包。该插件会将项目及其所有依赖项打包成一个可执行的 JAR 文件。在命令行中运行以下命令即可完成打包过程:
gradle clean build
打包完成后,项目的 build/libs 目录下会生成一个以 .jar 结尾的可执行 JAR 文件。
3. 运行可执行 JAR 包
生成可执行 JAR 包后,我们可以使用 java -jar 命令直接运行应用程序。例如,运行以下命令即可启动应用程序:
java -jar app.jar
如果需要传递命令行参数,可以在命令后添加参数,例如:
java -jar app.jar --spring.profiles.active=prod
4. 配置应用程序启动参数
除了在命令行中传递参数外,我们还可以在 application.properties 或 application.yml 文件中配置应用程序启动参数。这些参数会在应用程序启动时被加载,并覆盖默认值。例如,我们可以在 application.properties 文件中添加 server.port=8080
来指定应用程序运行的端口号。
5. 使用 Spring Boot Maven 插件运行应用程序
除了直接运行 JAR 包,我们还可以使用 Spring Boot Maven 插件来运行应用程序。该插件提供了 spring-boot:run
目标,可以在不打包的情况下直接运行应用程序。这在开发和调试阶段非常有用,因为它可以更快地启动应用程序,并且支持热部署功能。
6. 部署 SpringBoot 应用程序
将生成的可执行 JAR 包部署到生产环境时,我们可以使用各种部署方式,如直接复制 JAR 文件并运行、将 JAR 文件打包到 Docker 镜像中、或使用容器编排工具(如 Kubernetes)进行部署。无论采用哪种方式,可执行 JAR 包都能够确保应用程序的可靠性和易部署性。
总之,通过使用 Maven 或 Gradle 打包 SpringBoot 项目为可执行 JAR 包,我们可以轻松部署和运行应用程序,无需依赖外部的应用服务器。这种打包方式简单高效,是 SpringBoot 项目部署的最佳实践之一。