Alibaba Cloud Toolkit使用:在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 应用到远程服务器

简介: Alibaba Cloud Toolkit使用:在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 应用到远程服务器

本文主要是安利一款Alibaba的开发小插件给大家,合理使用能提高日常工作效率。


说明


插件名称:Alibaba Cloud Toolkit

作用:集成到开发工具IDEA和Eclipse中,一键发布项目到云服务器或者本地远程私有服务器上。


下面说一下实际操作步骤:


安装插件


1、在线安装:

https://yq.aliyun.com/articles/674021?spm=a2c4e.11153940.blogcont673560.10.70722708luDt3T


2、离线下载:

http://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit

12.png

注意版本的兼容性,不然会安装失败:


demo项目准备


我的操作过程是自己建了一个名为demo的spring boot工程。


也可以下载阿里的教程中的demo项目,然后导入到IDEA中

SpringBoot Demo 工程下载


项目部署

1、配置Alibaba Cloud Toolkit

在idea中的tools中选择Deloy to Host进行配置

13.png

在这里插入图片描述

14.png

15.png



说明:

1、Deloy to Host部署是通过ssh连接,发布项目到远程服务器上

2、Deloyment File

选择文件部署方式:Maven Build和Upload File,如果选择Maven Build则每次都会重新打包,Upload File方式则将指定路径下打的包上传。

3、Target deployment host:选择发布项目的目标服务器

4、Deloy location:发布到服务器上的什么记录下,其实只是配置文件上传到服务器上的什么目录下。

5、Command:文件上传完毕后,执行什么命令。这一步是项目发布的核心,通过执行自定义的shell命令,优雅的发布项目。

这是阿里官网对Command的一些说明:

https://help.aliyun.com/knowledge_detail/102300.html#notes


#! /bin/shell
source /etc/profile
pkill -f test.jar
rm -rf /home/test.log
nohup java -jar /home/test.jar > /home/test.log &


使用须知

当您使用 Alibaba Cloud Toolkit 部署应用时,使用 Command 命令需注意以下几点:


1、操作系统不会自动执行 source /ect/profile 等命令来应用环境变量,需用户手动执行。

2、不管应用程序部署在什么位置,Command 会固定在 /root 目录下执行。

3、Command 命令会在固定 root 账户下执行,若需更换用户,请在脚本内切换。

4、所有路径必须为绝对路径。若为相对路径,您将无法找到标准输出的日志文件。

5、脚本中不能使用 tail -f 等不中断的命令。


通过上面的命令基本能满足日常开发,但是感觉还不够优雅。

下面是我实现的发布脚本,主要是添加了按照发布时间自动备份的功能:


cd   /usr/local/project/         ##进入工作目录
mkdir   bin                          ##创建脚本保存目录
vi   start.sh                         ##创建脚本
##########脚本内容如下:
#!/bin/bash
source /etc/profile
#最新部署文件上传目录
deploy_path="/usr/local/project/"                
upload_path="/usr/local/project/upload/"     
history_path="/usr/local/project/history/"
#文件备份
back(){
  #判断目录是否存在,不存在就创建
  if [ ! -d "$deploy_path" ]; then
    mkdir $deploy_path
  fi
  if [ ! -d "$upload_path" ]; then
    mkdir $upload_path
  fi
  if [ ! -d "$history_path" ]; then
    mkdir $history_path
  fi
  #判断文件是否存在,存在就开始备份
 if [  -f "$upload_path$1" ];then
      #备份deploy_path下文件到history_path,根据日期时间命名
      echo "开始备份"
      datetime=`date +%Y%m%d-%H%M%S`
      if [  -f "$deploy_path$1" ];then
          mv  "$deploy_path$1"  "$history_path$1-$datetime"
      fi
      mv $upload_path$1 $deploy_path
      echo "完成文件备份"
  fi
}
#启动方法
start(){
  #判断${APP_NAME}文件是否存在
  APP_NAME="$1";
  back $APP_NAME
  if [ ! -f "$deploy_path$APP_NAME" ];then
      echo "没有找到$APP_NAME启动文件!"
      return
  fi
  #进程是否启动,没启动直接启动,启动了就先关闭再重启,
  pid=$(ps -ef | grep -v 'grep' | egrep $APP_NAME| awk '{printf $2 " "}')
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
    #不存在,直接启动
    nohup java $2 -jar $deploy_path$APP_NAME >>/dev/null 2>&1 &
  else
    echo "项目$1已经启动,进程pid是${pid}!"
    echo "现在开始关闭进程,重启$APP_NAME!"
    kill -9 $pid
    nohup java $2 -jar $deploy_path$APP_NAME >>/dev/null 2>&1 &
  fi
}
start demo-0.0.1-SNAPSHOT.jar "-Xms500m -Xmx500m"


本人也是刚学习shell脚本没多久,实现过程中可能有些不足,欢迎指点交流。


2、点击指定按钮,开始打包发布

16.png

分析过程:

1、maven打包

2、Upload:上传文件到服务器指定路径

3、Command:执行指定脚本,如果要不是不配置的话,那么仅仅只能实现文件上传功能。

4、result里面返回的执行脚本过程的echo提示信息。目前插件版本的bug,阿里的客服小哥哥说,下个版本修复。


在服务器上查看发布结果:

1、项目是否正常启动

2、多次部署项目,历史部署文件是否成功备份到/usr/local/project/history/目录下


大功告成,希望对大家所有帮助。


参考:


在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 应用到阿里云


阿里官方说明文档

阿里官方产品首页


更新:

1、进行Add host操作时,出现报错,提示是需要安装OpenSSH。

可以安装提示中的页面进行处理。我直接采用了在线安装方式,脚本如下:

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# Both of these should return the following output:
Path          :
Online        : True
RestartNeeded : False


– 也就是在window系统里面的PowerShell里面执行以下语句就可以了。

Add-WindowsCapability -Online -Name OpenSSH.Client0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server0.0.1.0


目录
相关文章
|
12天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
92 62
|
9天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
9天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
25 2
|
17天前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
|
数据采集 SQL 弹性计算
使用云服务器ECS部署了自己的第一个爬虫
云服务器部署爬虫爬取网站最新通告并推送
使用云服务器ECS部署了自己的第一个爬虫
|
1天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
7天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
40 9
|
4天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
8天前
|
弹性计算 异构计算
2024年阿里云GPU服务器多少钱1小时?亲测价格查询方法
2024年阿里云GPU服务器每小时收费因实例规格不同而异。可通过阿里云GPU服务器页面选择“按量付费”查看具体价格。例如,NVIDIA A100的gn7e实例为34.742元/小时,NVIDIA A10的gn7i实例为12.710156元/小时。更多详情请访问阿里云官网。
43 2
|
13天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
51 3
下一篇
无影云桌面