当前位置: 首页 > news >正文

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

准备工作

  • 一个可以访问的服务器,已安装宝塔面板。
  • 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项目。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 从C向C++28——设计模式
  • 为什么身边好多公司都开始用加密软件了?
  • C++面向对象高级开发A
  • 先进制造aps专题二十五 openai的ai大模型设计也使用了aps用的并行遗传算法
  • 互联网全景消息(1)之RabbitMq基础入门
  • 一文看懂智能终端密码模块
  • ElasticSearch索引和搜索词匹配的一些细节
  • 企业级环境部署:在 Linux 服务器上如何搭建和部署 Python 环境?
  • Vue+ElementUI+Electron环境搭建及程序打包
  • 广电数安 未来已展 | 天空卫士亮相BIRTV2024
  • 探索音视频SDK在软件集成与私有化部署中的技术难题与解决策略
  • Gartner首次发布AI代码助手魔力象限,阿里云进入挑战者象限,通义灵码产品能力全面领先
  • 解锁 QLExpress:高效数据处理的神器
  • springboot嵌入式数据库实践-H2内嵌数据库(文件、内存)
  • 服务器机房与数据中心的区别?
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Brief introduction of how to 'Call, Apply and Bind'
  • classpath对获取配置文件的影响
  • happypack两次报错的问题
  • Javascript 原型链
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • python3 使用 asyncio 代替线程
  • STAR法则
  • ViewService——一种保证客户端与服务端同步的方法
  • 不上全站https的网站你们就等着被恶心死吧
  • 大数据与云计算学习:数据分析(二)
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 算法之不定期更新(一)(2018-04-12)
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 我建了一个叫Hello World的项目
  • 自动记录MySQL慢查询快照脚本
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • #vue3 实现前端下载excel文件模板功能
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (二)Linux——Linux常用指令
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (区间dp) (经典例题) 石子合并
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (四)汇编语言——简单程序
  • (四)图像的%2线性拉伸
  • (一)Thymeleaf用法——Thymeleaf简介
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)jdk与jre的区别
  • (转)nsfocus-绿盟科技笔试题目
  • .“空心村”成因分析及解决对策122344
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Framework 服务实现监控可观测性最佳实践