Spring Boot 项目打包及在宝塔面板上部署的简易指南

embedded/2024/12/22 2:33:22/

准备工作

  • 一个可以访问的服务器,已安装宝塔面板。
  • Java开发环境(JDK)已安装在服务器上。
  • Maven或Gradle等构建工具,用于打包 Spring Boot 项目,我这里用的是 Maven
  • 集成开发环境,我这里使用的是IntelliJ IDEA。

项目打包

  1. 配置 pom.xml(针对 Maven):

因为我这边是通过阿里云云原生应用脚手架生成的 Spring Boot 项目,所以在 pom.xml 文件中包含了 Spring Boot 插件,示例如下:

<project><!-- 其他配置信息 --><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.pennon.javaservice.JavaServiceApplication</mainClass><skip>false</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

要注意的是,spring-boot-maven-plugin 插件配置中的 skip 属性要设置为 false。 默认被设置为 true,这会导致 Spring Boot 在打包时跳过构建可执行 JAR 文件的操作,在生成的 JAR 文件中缺少必要的主清单属性,从而会导致 “no main manifest attribute” 的错误。

  1. 打包项目:

我这里直接通过 IntelliJ IDEA 右边栏的 Maven 插件,先执行 clean 命令,然后选择 package 命令,然后等待打包完成。

target 目录下,就会生成一个 jar 文件,这个文件就是我们最终要部署的 Spring Boot 项目。

部署宝塔面板

  1. 上传构建产物

使用FTP客户端或宝塔面板的文件管理功能,将构建好的JAR文件上传到服务器的指定目录(比如/www/wwwroot/your_project目录下)。

  1. 新建Java项目

在“网站”管理中的“Java项目”Tab页下,点击“添加Java项目”,填写项目信息:

  • 项目类型:选择 SpringBoot
  • 项目jar路径:选择刚刚上传的JAR文件
  • 项目名称:自定义填写
  • 项目端口:默认8080即可,并选中“放行端口”选项
  • 项目JDK:选择已安装的JDK版本
  • 项目执行命令:默认即可,无需修改
  • 其他参数:默认即可,无需修改

然后点击“确定”按钮,等待项目创建完成,一般创建成功后,项目就启动了。

如果项目状态未显示“运行中”,请点击“设置”按钮,检查项目日志,查看是否有错误信息。

  1. 访问项目

在浏览器中输入服务器的IP地址和项目端口号,即可访问到Spring Boot项目。


http://www.ppmy.cn/embedded/104498.html

相关文章

多线程——概念

​ 进程 操作系统中进行资源分配的基本单位&#xff0c;进程就是进行中的程序&#xff0c;处于运行过程中的。 三个基本特征&#xff1a; 独立性&#xff1a;进程是独立运行&#xff0c;独立获取资源&#xff0c;独立接收调度的基本单。没有进程本身的统一&#xff0c;其他…

基于springboot+MySQL的图书管理系统的设计与实现-计算机毕设 附源码 13714

基于springboot的图书管理系统的设计与实现 目 录 摘要 1 绪论 1.1 研究背景与意义 1.2开发现状 1.3论文结构与章节安排 2 图书管理系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 …

一文看懂Kafka事务实现原理!

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 任何文章不要过度深思&#xff01;万事万物都经不起审视&#xff0c;因为世上没有同样的成长环境&#xff0c;也没有同样的认知水平&#xff0c;更「没有适用于所有人的解决方案…

科研绘图系列:python语言密度分布图(density plot)

介绍 密度分布图是一种统计图表,用于表示数据的分布情况。它通常用于展示变量的频率分布,但与直方图不同,密度分布图通过平滑曲线来表示数据的分布,而不是用柱状图来表示。这种图表可以更直观地展示数据的分布形状,如是否对称、是否多峰等。 在密度分布图中,横轴代表数…

Android在子线程中更新UI

Android在子线程中更新UI 和许多其他的GUI库一样&#xff0c;Android的UI也是线程不安全的。也就是说&#xff0c;如果想要更新应用程序里的UI元素&#xff0c;则必须在主线程中进行&#xff0c;否则就会出现异常。 眼见为实&#xff0c;让我们通过一个具体的例子来验证一下吧…

无法连接Redis服务问题排查

1. 检查 Redis 服务器是否正在运行 首先&#xff0c;确保 Redis 服务器正在运行。你可以在服务器或本地机器上运行以下命令来检查 Redis 服务器的状态&#xff1a; redis-cli ping 如果返回 PONG&#xff0c;说明 Redis 服务器正在运行。如果无法连接&#xff0c;则可能需要…

ACL学习笔记

1.ACL快速配置 需求&#xff1a;拒绝PC 1访问PC 3 &#xff08;1&#xff09;配置PC PC 1: PC 2: PC 3: &#xff08;2&#xff09;配置R1的接口IP信息 sys sysname R1 undo info-center enable interface GigabitEthernet0/0/0 ip address 192.168.1.1 255.255.255.0 qui…

Cypress 调用后端能力 task

在 Cypress 中的测试都是在前端运行的, 一些后端的操作是不可以直接调用的, 例如 fs, 但是可以通过 task 作为桥梁进行调用. 1. 在 cypress.config.js 中配置 e2e: {setupNodeEvents(on, config) {plugins(on, config);},2. 在 plugins/index.js 中实现 const fs require(&q…