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

idea一键自动化部署项目

文章目录

  • 前言
  • 一、 IDEA插件安装
    • 1. 首先下载 Alibaba Cloud Toolkit 插件
    • 2. 插件下载完成后重启IDEA
  • 二、SpringBoot项目准备
    • 1. pom.xml 文件
    • 2. controller
    • 3. 启动类
  • 三、SpringBoot项目jar包部署
    • 1. Alibaba Cloud Toolkit 插件服务器配置
    • 2. 主机 IP、用户名、密码 点击测试链接
    • 3. 编辑项目配置
    • 4. 选择 Deploy to Host
    • 5. 指定Target Deploy Host 选择添加主机IP,勾选刚添加的服务器
    • 6. 配置服务器jar包存放目录
    • 7. 选择本地要上传的jar包
    • 8. 添加启动命令
    • 9. 配置打包命令
    • 10. 测试
    • 11. 部署脚本


前言

一键自动化部署项目是现代软件开发中的一种高效实践,它带来了许多显著的好处:

  • 提高效率:自动化部署可以节省手动部署所需的时间。特别是在频繁部署的情况下,自动化可以显著减少重复性工作,让开发人员有更多时间专注于编码和解决问题。
  • 减少错误:手动部署过程容易出错,尤其是在复杂的部署流程中。自动化部署可以减少人为错误,确保每次部署都是一致和可靠的。
  • 快速回滚:如果新部署的版本出现问题,自动化部署流程可以快速回滚到上一个稳定版本,减少系统不可用的时间。
  • 持续集成和持续部署(CI/CD):自动化部署是CI/CD流程的关键组成部分,它允许开发团队快速迭代和发布新功能,提高软件交付的速度和质量。
  • 标准化流程:自动化部署有助于标准化部署流程,确保所有团队成员都遵循相同的步骤和标准,这有助于维护代码和部署的一致性。

提示:文章一共介绍2种方式,下面案例可供参考

一、 IDEA插件安装

1. 首先下载 Alibaba Cloud Toolkit 插件

在这里插入图片描述

2. 插件下载完成后重启IDEA

在这里插入图片描述

二、SpringBoot项目准备

1. pom.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.test</groupId><artifactId>demo-test</artifactId><version>1.0.0-SNAPSHOT</version><name>demo-test</name><description>demo-test</description><properties><java.version>8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2. controller

package com.test.controller;import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("demo")
public class TestController {/*** 测试接口** @param version 版本号* @return 版本号*/@GetMapping("query")public String query(@RequestParam String version) {System.out.println("打印版本 = " + version);return version;}
}

3. 启动类

package com.test;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoTestApplication {public static void main(String[] args) {SpringApplication.run(DemoTestApplication.class, args);}
}

在这里插入图片描述

三、SpringBoot项目jar包部署

1. Alibaba Cloud Toolkit 插件服务器配置

在这里插入图片描述

2. 主机 IP、用户名、密码 点击测试链接

在这里插入图片描述

3. 编辑项目配置

在这里插入图片描述

4. 选择 Deploy to Host

在这里插入图片描述

5. 指定Target Deploy Host 选择添加主机IP,勾选刚添加的服务器

在这里插入图片描述

6. 配置服务器jar包存放目录

在这里插入图片描述

7. 选择本地要上传的jar包

  • 注意⚠️ 这里一定要本地的绝对路径

在这里插入图片描述

8. 添加启动命令

在这里插入图片描述

9. 配置打包命令

clean package install -Dmaven.test.skip=true

在这里插入图片描述
到这里差不多就配置完了,简单测试一下

10. 测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11. 部署脚本

  1. 服务器脚本位置
/opt/app/test/deploy/test.sh
  1. test.sh
#!/bin/bash# 定义程序路径和文件名的数组
declare -a APP_SERVER_PATHS=("/opt/app/test/")
declare -a APP_SERVERS=("demo-test-1.0.0-SNAPSHOT.jar")# 停止并重启每个程序
for ((i = 0; i < ${#APP_SERVER_PATHS[@]}; i++)); doAPP_SERVER_PATH=${APP_SERVER_PATHS[$i]}APP_SERVER=${APP_SERVERS[$i]}# 查找正在运行的Java进程的PIDPID=$(ps aux | grep java | grep "$APP_SERVER" | grep -v grep | awk '{print $2}')if [ -z "$PID" ]; thenecho "demo-test-1.0.0 server application $i is not running."else# 杀死进程echo "Stopping demo-test-1.0.0 server application $i (PID: $PID)..."kill $PIDsleep 5fi
done# 确保进程已停止后再启动程序
for ((i = 0; i < ${#APP_SERVER_PATHS[@]}; i++)); doAPP_SERVER_PATH=${APP_SERVER_PATHS[$i]}APP_SERVER=${APP_SERVERS[$i]}# 启动程序echo "Starting demo-test-1.0.0 server application $i..."nohup java -Xms512m -Xmx1024m -Xmn256m -Xss256k -jar "${APP_SERVER_PATH}${APP_SERVER}" --spring.profiles.active=prod > /dev/null 2>&1 &echo "demo-test-1.0.0 server application $i restarted successfully."
done
  1. 修改IDEA 部署脚本
    在这里插入图片描述

相关文章:

idea一键自动化部署项目

文章目录 前言一、 IDEA插件安装1. 首先下载 Alibaba Cloud Toolkit 插件2. 插件下载完成后重启IDEA 二、SpringBoot项目准备1. pom.xml 文件2. controller3. 启动类 三、SpringBoot项目jar包部署1. Alibaba Cloud Toolkit 插件服务器配置2. 主机 IP、用户名、密码 点击测试链接…...

Mybatis-plus复习篇

文章目录 1.MyBatis-plus基础1.1.mybatis-plus简介1.2.基本使用1.3.注解映射主键生成策略 1.4.命名转换问题1.5.关闭命名转换功能 2.BaseMapper核心接口 1.MyBatis-plus基础 1.1.mybatis-plus简介 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&…...

Leetcode 109.有序链表转换二叉搜索树(Medium)

给定一个单链表的头节点 head &#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为 平衡 二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0&#xff0c;-3,9&#xff0c;-10,null,5]&#xff0c;它表示所示的高度…...

[数据集][目标检测]河道垃圾检测数据集VOC+YOLO格式2274张8类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2274 标注数量(xml文件个数)&#xff1a;2274 标注数量(txt文件个数)&#xff1a;2274 标注…...

python vtk 绘制圆柱体和包围盒

基本的代码如下&#xff0c; import vtkcylinder vtk.vtkCylinderSource() cylinder.SetRadius(3.0) cylinder.SetHeight(10.0) cylinder.SetResolution(50)boundsFilter vtk.vtkOutlineFilter() boundsFilter.SetInputConnection(cylinder.GetOutputPort())mapper vtk.vtk…...

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络) 文章目录 Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)前言一、Ubuntu依赖安装二、创建操作目录, 下载build_chain.sh脚本2.1 先…...

【Canvas与表盘】绘制黄蓝两色简约表盘

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>黄蓝卡通手表</title><style type"text/css">…...

大数据-128 - Flink 并行度设置 细节详解 全局、作业、算子、Slot

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

图新地球-将地图上大量的地标点批量输出坐标到csv文件【kml转excel】

0.序 有很多用户需要在卫星影像、或者无人机航测影像、倾斜模型上去标记一些地物的位置&#xff08;如电线杆塔、重点单位、下水盖等&#xff09; 标记的位置最终又需要提交坐标文本文件给上级单位或者其他部门使用&#xff0c;甚至需要转为平面直角坐标。 本文的重点是通过of…...

Git提交有乱码

服务器提交记录如图 可知application.properties中文注释拉黄线 &#xff0c;提示Unsupported characters for the charset ISO-8859-1 打开settings - Editor - File Encodings 因为我们项目的其他文件都是UTF-8&#xff0c;所以&#xff0c;我们将默认值都改成UTF-8 然后…...

leetcode hot100_part4_子串

2024/4/20—4/21 560.和为K的子数组 前缀和哈希表&#xff0c;做二叉树的时候也有这个套路。注意细节&#xff0c;遍历到当前前缀和的时候是先找结果个数还是先加入哈希&#xff1f;应该先找结果个数&#xff0c;不然的话&#xff0c;当前位置也算上了&#xff08;因为是前缀和…...

Spring Cloud之三 网关 Gateway

1:Intellij 新建项目 spring-cloud-gateway 2:pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoca…...

Linux 进程1

进程 在linux系统中&#xff0c;触发任何一个事件时系统会将其定义为一个进程&#xff08;一个程序开始执行&#xff09;&#xff0c;系统会给这个进程分配一个进程ID统称为PID。 程序&#xff1a;通常是二进制文件&#xff0c;放置于存储媒介如硬盘中。 进程&#xff1a;当存…...

LeetCode: 2552. 统计上升四元组 动态规划 时间复杂度O(n*n)

2552. 统计上升四元组 today 2552. 统计上升四元组 题目描述 给你一个长度为n下标从 0 开始的整数数组 nums &#xff0c;它包含1到n的所有数字&#xff0c;请你返回上升四元组的数目。 如果一个四元组 (i, j, k, l) 满足以下条件&#xff0c;我们称它是上升的&#xff1a;…...

Unity 编辑器设置中文

在 Unity 编辑器中&#xff0c;你可以按照以下步骤将语言设置为中文&#xff1a; 步骤&#xff1a; 1. 打开 Unity 编辑器。 2. 在顶部菜单栏&#xff0c;依次点击 Edit > Preferences&#xff08;在 macOS 上是 Unity > Preferences&#xff09;。 3. 在弹出的 Preferen…...

springboot-创建连接池

操作数据库 代码开发步骤&#xff1a; pom.xml文件配置依赖properties文件配置连接数据库信息&#xff08;连接池用的是HikariDataSource&#xff09;数据库连接池开发 configurationproperties和value注解从properties文件中取值bean方法开发 service层代码操作数据库 步骤&am…...

matlab绘制不同区域不同色彩的图,并显示数据(代码)

绘图结果如下&#xff1a; 代码如下&#xff1a; A为绘图的数据&#xff0c;每个数据对应着上图中的一个区域&#xff0c;数据大小决定区域的颜色 % 假设有一系列的数据点 Arand(5,6); %A为绘图的数据&#xff0c;数据大小决定颜色 wei_shu%.3f; %代表数据保留三位小…...

Docker Desktop 的安装与汉化指南

前言 Docker Desktop 是一款非常流行的开发工具&#xff0c;它使得开发者能够在自己的计算机上轻松地构建、运行和调试 Docker 容器。然而&#xff0c;默认情况下&#xff0c;Docker Desktop 的界面是英文的&#xff0c;对于中文用户来说&#xff0c;有时候会觉得不够友好。幸…...

前端form表单+ifarme方式实现大文件下载

// main.jsimport Vue from vue; import App from ./App.vue; import { downloadTokenFile } from /path/to/your/function; // 替换为您的函数路径// 将 downloadTokenFile 添加到 Vue 原型上 Vue.prototype.$downloadTokenFile downloadTokenFile;new Vue({el: #app,render:…...

Leetcode面试经典150题-141.环形链表

题目比较简单&#xff0c;重点是理解思想 解法都在代码里&#xff0c;不懂就留言或者私信 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public…...

OFA-VE模型性能详解:OFA-Large在SNLI-VE测试集SOTA指标复现与解读

OFA-VE模型性能详解&#xff1a;OFA-Large在SNLI-VE测试集SOTA指标复现与解读 1. 引言&#xff1a;理解视觉蕴含的核心价值 视觉蕴含&#xff08;Visual Entailment&#xff09;是多模态人工智能领域的一个重要研究方向&#xff0c;它要解决的核心问题是&#xff1a;机器如何…...

保姆级教程:用Arch Linux为你的旧手机编译LineageOS 21(附LG G8 ThinQ实战记录)

深度实战&#xff1a;在Arch Linux上为LG G8 ThinQ编译LineageOS 21的完整指南 当老旧手机逐渐被厂商放弃系统更新时&#xff0c;自行编译定制ROM成为延长设备寿命的最佳选择。本文将详细记录在Arch Linux环境下为LG G8 ThinQ&#xff08;代号alphaplus&#xff09;编译Lineage…...

JESD204B时钟系统解析——从设备时钟到多帧时钟的协同设计

1. JESD204B时钟系统全景解析 第一次接触JESD204B协议时&#xff0c;我被它复杂的时钟系统搞得晕头转向。这个高速串行接口协议之所以难啃&#xff0c;很大程度上就是因为其独特的时钟架构设计。在实际项目中&#xff0c;我遇到过因为时钟配置不当导致数据传输失败的案例&…...

终极美化指南:3步打造你的专业级foobar2000音乐播放器

终极美化指南&#xff1a;3步打造你的专业级foobar2000音乐播放器 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否还在使用foobar2000那单调乏味的默认界面&#xff1f;每天面对灰白色的播放列…...

Qwen3-TTS-12Hz-1.7B-Base部署教程:NVIDIA驱动版本校验+cuDNN兼容性检查清单

Qwen3-TTS-12Hz-1.7B-Base部署教程&#xff1a;NVIDIA驱动版本校验cuDNN兼容性检查清单 语音克隆新体验&#xff1a;只需3秒音频&#xff0c;就能让AI学会你的声音&#xff0c;用10种语言说出任何话 1. 环境准备与快速部署 在开始部署Qwen3-TTS语音克隆模型之前&#xff0c;我…...

Pixel Mind Decoder 命令行工具开发:使用Typora风格交互进行情绪随笔分析

Pixel Mind Decoder 命令行工具开发&#xff1a;使用Typora风格交互进行情绪随笔分析 1. 引言&#xff1a;当写作遇上情绪分析 你有没有过这样的体验&#xff1f;在Typora里奋笔疾书时&#xff0c;突然想知道这段文字传递出怎样的情绪色彩。作为一个经常用Markdown写作的人&a…...

手机助手新选择:DeepSeek-R1-Distill-Qwen-1.5B边缘计算实测分享

手机助手新选择&#xff1a;DeepSeek-R1-Distill-Qwen-1.5B边缘计算实测分享 1. 引言&#xff1a;边缘计算的新选择 在移动设备上运行大语言模型一直是技术挑战&#xff0c;传统方案要么性能不足&#xff0c;要么资源消耗过大。DeepSeek推出的R1-Distill-Qwen-1.5B模型改变了…...

OpenClaw+GLM-4.7-Flash:个人旅行计划自动生成与优化

OpenClawGLM-4.7-Flash&#xff1a;个人旅行计划自动生成与优化 1. 为什么需要AI旅行助手&#xff1f; 去年夏天&#xff0c;我计划带家人去云南旅行时&#xff0c;花了整整三个晚上对比机票价格、筛选酒店、计算景点间的交通时间。当我在凌晨两点盯着Excel表格里混乱的日期和…...

Fish Speech-1.5多语种支持实战:阿拉伯语右向文本语音生成注意事项

Fish Speech-1.5多语种支持实战&#xff1a;阿拉伯语右向文本语音生成注意事项 1. 引言 语音合成技术正在改变我们与数字世界的交互方式&#xff0c;而多语言支持更是让这项技术真正走向全球化。Fish Speech-1.5作为一款强大的文本转语音模型&#xff0c;支持包括阿拉伯语在内…...

LabWindows/CVI报错

NON-FATAL RUN-TIME ERROR: "main.c", line 488, col 9, thread id 0x000057C4: Function GetCtrlVal: (return value -13 [0xfffffff3]). Invalid control ID 该怎么解决啊各位...