Idea_服务器自动化部署_傻瓜式教程

ops/2024/10/22 18:43:41/

使用Alibaba Cloud Toolkit 在 IntelliJ IDEA 中一键部署项目到服务器

1. 安装 Alibaba Cloud Toolkit 插件

  • 确保 IntelliJ IDEA 版本为 2018.3 或以上。
  • 打开 IntelliJ IDEA,进入 File -> Settings -> Plugins,搜索并安装 Alibaba Cloud Toolkit 插件。

在这里插入图片描述

2. 配置服务器信息

  • 打开 Alibaba Cloud Toolkit,点击 Host 标签页,添加服务器信息:
    • 主机 IP、用户名、密码。

在这里插入图片描述

3. 部署项目

  • 右键点击项目,选择 Deploy to Host...,配置部署信息:
    • 选择 Maven BuildUpload File
    • 指定 Target Deploy HostDeploy Location
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

4. 执行部署

  • 点击 Run 执行部署,可以在 IDEA 的控制台中查看部署进度和日志。

在这里插入图片描述

5. 监控与日志

  • 使用 tail -f nohup.out 命令可以在 IDEA 内置终端中实时查看应用日志。

在这里插入图片描述

注意事项

  • 确保服务器已安装 Java 环境和所需的依赖。
  • 根据项目需求调整启动命令和部署路径。
  • 初次部署可能需要手动创建部署目录和配置文件。

通过 Alibaba Cloud Toolkit,您可以简化从本地开发环境到服务器部署的流程,实现一键部署,提高开发效率。

执行脚本

before.sh

#!/bin/bash# 定义JAR文件的名称和位置
JAR_NAME="springboot-0.0.1-SNAPSHOT.jar"
JAR_PATH="./$JAR_NAME"# 通过pgrep + grep找到java进程id
echo "查找Spring Boot应用的进程ID..."
PID=$(pgrep -f "$JAR_NAME")# 检查是否找到进程ID
if [ -z "$PID" ]; thenecho "没有找到运行中的Spring Boot应用。"
else# 停止Spring Boot应用echo "停止Spring Boot应用 (PID: $PID)..."kill -9 $PID
fi# 等待进程终止
sleep 2# 删除旧的JAR文件
echo "删除旧的JAR文件: $JAR_NAME"
rm -f "$JAR_PATH"# 检查JAR文件是否已删除
if [ -f "$JAR_PATH" ]; thenecho "无法删除JAR文件: $JAR_NAME"exit 1
fiset ff=unix

after.sh

# 文件的路径
JAR_PATH="./springboot-0.0.1-SNAPSHOT.jar"# 检查JAR文件是否存在
if [ ! -f "$JAR_PATH" ]; thenecho "错误:JAR文件不存在 $JAR_PATH"exit 1
fi# 停止正在运行的Spring Boot应用(如果正在运行)
echo "停止可能正在运行的Spring Boot应用..."
COUNT=$(ps -ef | grep "$JAR_PATH" | grep -v grep | wc -l)
if [ "$COUNT" -gt 0 ]; thenecho "Spring Boot应用正在运行,正在停止..."kill -9 $(ps -ef | grep "$JAR_PATH" | grep -v grep | awk '{print $2}')echo "已停止."
fi# 等待几秒钟确保应用已经停止
sleep 2# 启动Spring Boot应用
echo "启动Spring Boot应用..."
nohup java -jar "$JAR_PATH" > nohup.out 2>&1 &echo "Spring Boot应用已启动."
tail -f nohup.out
:set ff=unix

http://www.ppmy.cn/ops/103833.html

相关文章

asio之服务的理解

服务组件 asio中的服务抽象为io_service::service #mermaid-svg-artyBUb0hnZdT3xh {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-artyBUb0hnZdT3xh .error-icon{fill:#552222;}#mermaid-svg-artyBUb0hnZdT3xh .er…

Redis高可用方案:使用Keepalived实现主备双活

注意:请确保已经安装Redis和keepalived,本文不在介绍如何安装。 1、使用版本说明 Redis版本:5.0.2 Keepalived版本:1.3.5 Linux 版本:Centos7.9 查看Redis版本: /usr/local/redis/bin/redis-cli -v查…

HarmonyOS NEXT 实战开发:实现日常提醒应用

为什么要开发这个日常提醒应用? 最近鸿蒙热度一直不减,而且前端的就业环境越来越差,所以心里面萌生了换一个赛道的想法。HarmonyOS NEXT 是华为打造的国产之光,而且是纯血版不再是套壳,更加激起了我的好奇心。ArkTS是…

【网络安全】服务基础第一阶段——第三节:Windows系统管理基础----服务器远程管理与安全权限

服务器远程管理是一种技术,服务器远程管理是指通过远程连接来监控、配置和维护服务器的过程,而无需直接在物理服务器前操作。它允许IT管理员在不同的地点对服务器进行配置、监控和维护,无需物理上接触到服务器本身。这种能力对于管理分布在多…

安卓蓝牙技术的使用和场景

1.蓝牙协议应用领域 蓝牙协议是一种无线通信技术,广泛应用于短距离的数据和语音传输。以下是蓝牙协议的主要使用场景: 个人设备互联:蓝牙技术允许智能手机、平板电脑、笔记本电脑等设备之间进行数据传输和共享。例如,通过蓝牙将手…

nginx平滑升级与回滚

华子目录 升级实验环境准备测试内容准备实验要求实验步骤1.解压包2.检测1.26版本的环境3.make编译4.备份之前的nginx启动脚本5.将1.26中的nginx启动脚本覆盖掉1.24中的6.kill -USR2 旧主进程pid7.kill -WINCH 旧主进程pid 实验测试 回滚1.kill -HUP 旧主进程pid2.kill -WINCH 新…

Python 中用线程执行阻塞式 I/O,不做并行计算

Python 中用线程执行阻塞式 I/O,不做并行计算 尽管 Python 也支持多线程,但这些线程受 GIL(global interpreter lock,全局解释器锁) 约束,所以每次或许只能有一条线程向前推进,而无法实现多头并…

Tailwind CSS @apply Unknown at rule @apply scss(unknownAtRules) 解决方案

vscode 警告提示如下: tailwind base; ^^^^^^^^^ Unknown at rule tailwind css(unknownAtRules)layer base {* {apply text-gray-dark;^^^^^^^^ Unknown at rule apply css(unknownAtRules)} }解决方法: 在根目录 .vscode 文件夹下 .vscode/settings…