IntelliJ IDEA 将 Spring Boot 项目远程部署到服务器

news2025/3/25 22:06:29

使用 IntelliJ IDEA 将 Spring Boot 项目远程部署到服务器的详细步骤,涵盖多种常见方法:

方法一:通过 SSH + Maven 插件直接部署

1. 服务器环境准备
  • 确保服务器已安装:
    • Java 运行环境(与项目 JDK 版本一致)
    • Maven(可选,如果需要在服务器构建)
    • 开放应用端口(如 8080)和 SSH 端口(默认 22
2. 配置项目打包(pom.xml)

pom.xml 中添加 Spring Boot 打包插件,确保生成可执行 JAR:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
3. 本地构建项目

在 IDEA 中执行 Maven 打包命令:

mvn clean package -DskipTests

生成的 JAR 文件位于 target/项目名.jar

4. 通过 IDEA 的 SFTP 插件上传文件
  1. 启用 SFTP 插件

    • IDEA 菜单:Tools -> Deployment -> Configuration
    • 点击 + 添加新服务器配置,选择 SFTP
  2. 配置服务器连接

    Name: 自定义名称(如 "Production Server")
    Host: 服务器IP地址
    Port: SSH端口(默认22)
    User: 服务器用户名
    Auth Type: 选择 "Key pair"(推荐)或密码
    Root Path: 服务器部署目录(如 `/home/user/app`)
    
  3. 映射本地与服务器路径

  • Mappings 标签页中,设置本地项目路径与服务器目标路径的映射。
  1. 上传 JAR 文件

    • 右键点击 target/项目名.jar,选择 Deployment -> Upload to...,选择配置的服务器。
5. 通过 IDEA 终端远程启动应用
  1. 连接服务器
  • IDEA 菜单:Tools -> SSH Session,选择配置好的服务器。
  1. 启动 Spring Boot 应用
    cd /home/user/app
    nohup java -jar 项目名.jar > app.log 2>&1 &
    

方法二:使用 Docker 远程部署

1. 服务器环境准备
  • 安装 Docker 和 Docker Compose:
    # Ubuntu 示例
    sudo apt-get install docker.io docker-compose
    
2. 配置 Dockerfile

在项目根目录创建 Dockerfile

FROM openjdk:17-jdk-slim
WORKDIR /app
COPY target/项目名.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
3. 构建镜像并上传到服务器
  1. 本地构建镜像

    docker build -t my-spring-app .
    
  2. 将镜像导出为文件

    docker save -o my-spring-app.tar my-spring-app
    
  3. 通过 SFTP 上传镜像文件到服务器

  4. 在服务器加载镜像

    docker load -i my-spring-app.tar
    
4. 通过 IDEA 远程执行 Docker 命令
  1. 配置 Docker 远程连接

    • IDEA 安装 Docker 插件。
    • 菜单:Settings -> Build -> Docker,添加服务器 Docker 的 SSH 连接。
  2. 启动容器

    • 在 IDEA 的 Services 窗口,右键镜像选择 Run,配置端口映射(如 8080:8080)。

方法三:通过 CI/CD 工具(如 Jenkins)

1. 服务器安装 Jenkins
# Ubuntu 示例
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
2. 配置 Jenkins 任务
  1. 创建新任务,选择 “Maven 项目”。

  2. 配置 Git 仓库地址(或上传代码)。

  3. 设置构建命令

    mvn clean package -DskipTests
    
  4. 添加部署步骤(Post-build Action):

    • 使用 Publish Over SSH 插件将 JAR 文件上传到服务器并执行启动脚本。

方法四:使用 IDEA 内置的 Cloud Code 插件(针对 Kubernetes)

  1. 安装 Cloud Code 插件
    • 支持 Kubernetes 部署(适合云原生应用)。
  2. 配置 Kubernetes 集群
    • 在服务器安装 Kubernetes(如使用 Minikube 或 k3s)。
  3. 生成 Deployment 配置
    • 右键项目选择 Cloud Code -> Deploy to Kubernetes
  4. 远程部署
    • 自动生成 YAML 文件并同步到集群。

通用验证步骤

  1. 检查应用日志
    tail -f /home/user/app/app.log
    
  2. 访问 API 端点
    curl http://服务器IP:8080/health
    
  3. 查看进程状态
    ps aux | grep java
    

注意事项

  1. 安全性
    • 使用 SSH 密钥替代密码。
    • 配置防火墙规则,仅开放必要端口。
  2. 进程管理
    • 推荐使用 systemdSupervisor 管理应用进程。
  3. 环境变量
    • 敏感信息(如数据库密码)通过环境变量注入,避免硬编码。

通过以上任一方法,均可实现从 IntelliJ IDEA 到服务器的 Spring Boot 项目部署。推荐初次使用者从 方法一(SSH + SFTP) 开始,熟悉后再尝试 Docker 或自动化工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2321569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纯vue手写流程组件

前言 网上有很多的vue的流程组件&#xff0c;但是本人不喜欢很多冗余的代码&#xff0c;喜欢动手敲代码&#xff1b;刚开始写的时候&#xff0c;确实没法下笔&#xff0c;最后一层一层剥离&#xff0c;总算实现了&#xff1b;大家可以参考我写的代码&#xff0c;可以拿过去定制…

WPS宏开发手册——使用、工程、模块介绍

目录 系列文章前言1、开始1.1、宏编辑器使用步骤1.2、工程1.3、工程 系列文章 使用、工程、模块介绍 JSA语法 第三篇练习练习题&#xff0c;持续更新中… 前言 如果你是开发人员&#xff0c;那么wps宏开发对你来说手拿把切。反之还挺吃力&#xff0c;需要嘻嘻&#xf…

django入门教程之request和reponse【二】

接上节&#xff1a;入门【一】 再创建一个orders子应用&#xff0c;python manager.py startapp orders&#xff0c;orders目录中新建一个urls.py文件。结构如图&#xff1a; 通过上节课&#xff0c;我们知道在views.py文件中编写函数时&#xff0c;有一个默认入参request&…

RAG优化:python从零实现[吃一堑长一智]循环反馈Feedback

本文将介绍一种有反馈循环机制的RAG系统,让当AI学会"吃一堑长一智",给传统RAG装了个"后悔"系统,让AI能记住哪些回答被用户点赞/拍砖,从此告别金鱼记忆: 每次回答都像在玩roguelike:失败结局会强化下次冒险悄悄把优质问答变成新知识卡牌,实现"以…

【Linux】VMware17 安装 Ubuntu24.04 虚拟机

目录 安装教程 一、下载 Ubuntu 桌面版iso映像 二、安装 VMware 三、安装 Ubuntu 桌面版 VMware 创建虚拟机 挂载 Ubuntu ISO 安装 Ubuntu 系统 安装教程 一、下载 Ubuntu 桌面版iso映像 链接来自 清华大学开源软件镜像站 ISO文件地址&#xff1a;ubuntu-24.04.2-des…

WPS宏开发手册——JSA语法

目录 系列文章2、JSA语法2.1、打印输出2.2、注释2.3、变量2.4、数据类型2.5、函数2.6、运算符2.7、比较2.8、if else条件语句2.9、for循环2.10、Math对象&#xff08;数字常用方法&#xff09;2.11、字符串常用方法2.12、数组常用方法 系列文章 使用、工程、模块介绍 JSA语…

word中指定页面开始添加页码

第一步&#xff1a; 插入页码 第二步&#xff1a; 把光标放到指定起始页码处 第三步&#xff1a; 取消链接到前一节 此时关掉页脚先添加分节符 添加完分节符后恢复点击 第四步&#xff1a; 设置页码格式&#xff0c;从1开始 第五步&#xff1a; 删掉不要的页码&#xff0c…

Python实现deepseek接口的调用

简介&#xff1a;DeepSeek 是一个强大的大语言模型&#xff0c;提供 API 接口供开发者调用。在 Python 中&#xff0c;可以使用 requests 或 httpx 库向 DeepSeek API 发送请求&#xff0c;实现文本生成、代码补全&#xff0c;知识问答等功能。本文将介绍如何在 Python 中调用 …

文档处理控件Aspose.Words 教程:.NET版中增强的 AI 文档摘要功能

Aspose.Words是一个功能强大的 Word 文档处理库。它可以帮助开发人员自动编辑、转换和处理文档。 自 24.11 版以来&#xff0c;Aspose.Words for .NET 提供了 AI 驱动的文档摘要功能&#xff0c;使用户能够从冗长的文本中快速提取关键见解。在 25.2 版中&#xff0c;我们通过使…

19,C++——11

目录 一、 C11简介 二、 新增的列表初始化 三、 新增的STL容器 四、 简化声明 1&#xff0c;auto 2&#xff0c;decltype 3&#xff0c;nullptr 五、右值引用 1&#xff0c;左值引用和右值引用 2&#xff0c;两种引用的比较 3&#xff0c;左值引用的使用场景 4&…

风尚云网|前端|前后端分离架构深度剖析:技术革新还是过度设计?

前后端分离架构深度剖析&#xff1a;技术革新还是过度设计&#xff1f; 作者&#xff1a;风尚云网 在数字化转型浪潮中&#xff0c;前后端分离架构已成为现代Web开发的主流模式。但这项技术真的是银弹吗&#xff1f;本文将从工程实践角度&#xff0c;剖析其优势与潜在风险&am…

CMS网站模板设计与用户定制化实战评测

内容概要 在数字化转型背景下&#xff0c;CMS平台作为企业内容管理的核心载体&#xff0c;其模板架构的灵活性与用户定制能力直接影响运营效率。通过对WordPress、Baklib等主流系统的技术解构发现&#xff0c;模块化设计理念已成为行业基准——WordPress依托超过6万款主题库实…

搭建个人博客教程(Hexo)

如何快速搭建一套本地的博客系统呢&#xff1f;这里有一套gitNode.jsHexo的部署方案来进行解决。 安装git Git 是一款免费开源的分布式版本控制系统&#xff0c;由 Linus Torvalds 于 2005 年为 Linux 内核开发设计。它通过本地仓库和远程仓库实现代码管理&#xff0c;支持分支…

Docker 可视化工具 Portainer

Docker 可视化工具 Portainer安装 官方安装地址&#xff1a;https://docs.portainer.io/start/install-ce/server/docker/wsl 一&#xff0c;首先&#xff0c;创建 Portainer Server 用来存储数据库的卷&#xff1a; docker volume create portainer_data二&#xff0c;然后…

数据库基础知识点(系列二)

1&#xff0e;关系数据模型由哪三个要素组成。 答&#xff1a;关系数据模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2&#xff0e;简述关系的性质。&#xff08;关系就是一张二维表格&#xff0c;但不是任何二维表都叫关系&#xff09; 答&#xff1a;(1…

如何进行灌区闸门自动化改造-闸门远程控制系统建设

改造背景 操作效率低‌&#xff1a;人工启闭耗时耗力&#xff0c;单次操作需2-3人配合&#xff0c;耗时长。 ‌水资源浪费‌&#xff1a;依赖经验估算放水量&#xff0c;易导致漫灌或供水不足。 ‌管理滞后‌&#xff1a;无法实时监控水位、流量&#xff0c;故障响应延迟。 …

【算法笔记】图论基础(二):最短路、判环、二分图

目录 最短路松弛操作Dijkstra朴素Dijkstra时间复杂度算法过程例题 堆优化Dijkstra时间按复杂度算法过程例题 bellman-ford时间复杂度为什么dijkstra不能处理负权边&#xff1f;dijkstra的三个步骤&#xff1a;反例失效的原因 算法过程例题 spfa时间复杂度算法过程例题spfa求最短…

EMS小车技术特点与优势:高效灵活的自动化输送解决方案

北成新控伺服技术丨EMS小车调试视频 EMS小车是一种基于单轨运行的电动输送系统&#xff0c;通过电力驱动实现物料的高效搬运和输送&#xff0c;具有高效灵活、节能环保、多功能集成、行业适配性强等特性&#xff0c;广泛应用于汽车制造、工程机械、家电生产、仓储物流等行业自动…

uniapp运行到支付宝开发者工具

使用uniapp编写专有钉钉和浙政钉出现的样式问题 在支付宝开发者工具中启用2.0构建的时候&#xff0c;在开发工具中页面样式正常 但是在真机调试和线上的时候不正常 页面没问题&#xff0c;所有组件样式丢失 解决 在manifest.json mp-alipay中加入 "styleIsolation&qu…

C++ 性能优化隐藏陷阱:从系统调用到并发开销的深度反思

作为一名C++技术专家,我深知性能优化不仅是代码层面的艺术,更是理解硬件与语言交互的科学。在现代计算中,C++的抽象为开发者提供了便利,却也隐藏了硬件的复杂性。如何揭开这些“谎言”,让代码与硬件协同工作?本文将以小案例为载体,通过优化前后的对比,深入剖析每个章节…