使用IntelliJ IDEA 集成阿里提供的 Alibaba Cloud Toolkit插件,实现自动化远程部署Java项目(jar包,war包两种方式)

  • Post author:
  • Post category:java

打开IntelliJ IDEA编译器,点击文件==>点击设置(setting)

在设置页面点击插件(英文应该是 Plugins ,对IntelliJ IDEA汉化感兴趣的同学可以在这个页面搜索 Chinese Simplified Language Pack/中文语言包 安装插件,安装之后重启编译器就可以使用汉化版本的IDEA了),在搜索框内搜索 Alibaba Cloud Toolkit,安装之后重启编译器就安装好了插件。

安装好插件就可以使用插件进行远程部署了,部署通常使用到两种方式。第一种方式是ECS部署,部署到阿里云的服务器上。第二种方式是HOST方式,部署到本地机房或者其他非阿里云服务器上。

首先介绍第一种方式ECS部署

这种方式首先需要将你的阿里云账号,密码等信息维护到IDEA中,维护之后就可以选择到你账号权限对应的ECS示例,具体操作流程如下。

点击文件==>点击设置(setting)

选择 Alibaba Cloud Toolkit 下的 Accounts 菜单,在对应的输入框输入你的阿里云账号,密码,密钥等信息,点击应用,确定之后就维护好了你的阿里云账号信息。

接下来点击编辑配置

选中 ECS on Alibaba Cloud

 页面需要设置的地方如下

下面对每个小项进行一下详解

Maven Build:

选用这种方式是通过maven命令进行打包,在打包成功之后进行上传到服务器的操作。

Upload File:

这种方式是指定好文件所在位置,直接上传指定文件,页面如下

Target Ecs:

选择服务器列表,点击加号就可以获取ECS服务器列表,如果没有服务器请确认服务所在集群位置是否正确,点击select选择要部署的服务器。

Target Directory:

需要上传到服务器的位置

Command:

 上传之后要执行的命令,可以是服务器上的某个文件(Windows服务器一般是bat脚本,Linux服务器一般是.sh脚本),或者是一段可以直接执行的命令。

点击Select Command 选择之前保存的命令或者脚本位置。如果没有需要通过 Add Command添加

执行前:

 需要执行的maven命令(clean install或者 clean package 等打包命令),可以选择执行的文件夹。

 都配置好后,点击应用,确定。在启动工程那个下拉框里就会出现这个图标,点击开始就可以开始打包部署了 。

第二种方式HOST部署

所有流程和配置都和ECS配置一样,只有选择服务器的时候略有不同。

在编译器的最下方点击 Alibaba CLoud View,选择Host,Tab页,点击Add Host。

 填入IP,端口号,账号,密码 这些必要信息后,点击测试链接情况,成功链接之后点击添加,就可以在服务器列表中找到这台服务器。

点击 Deploy to Host

点击加号,选择需要上传的服务器

 以上就是部署到远程服务器的两种方式。

下面附上jar包和war包的启动命令,需要的同学可以参考一下。

war包命令:

 Windows:

先根据端口号停止服务,然后执行 shutdown.bat 和 startup.bat ,就可以重启tomcat‘

@echo off
 for %%a in (8088) do (
    set pid=0
    for /f "tokens=2,5" %%b in ('netstat -ano ^| findstr ":%%a"') do (
        set temp=%%b
        for /f "usebackq delims=: tokens=1,2" %%i in (`set temp`) do (
            if %%j==%%a (
                taskkill /f /pid %%c
                set pid=%%c
                echo 端口号【%%a】相关进程以杀死
            ) else (
                echo 不是本机占用端口【%%a】
            )
        )
    )
    if !pid!==0 (
       echo 端口号【%%a】没有占用
    )
)
cd /d "D:\tomcat\apache-tomcat-8.5.73\bin"  
title Tomcat重新启动脚本  
call "shutdown.bat"
call "startup.bat"
exit

 

 Linux:

#!/bin/sh
#定义tomcat路径变量:完整路径或最后级路径文件夹都可以
tomcat_path='/usr/dev/tomcat'
#获取 tomcat_path 所知tomcat 的进程ID
TomcatID=$(ps -ef |grep tomcat |grep -w $tomcat_path|grep -v 'grep'|awk '{print $2}')
echo "##############################################开始重启Tomcat Server[$tomcat_path、进程ID:$TomcatID]################################################"
#判断进程是否存在  注意空格,if用法参照http://blog.chinaunix.net/uid-20735106-id-3434959.html
if [ "$TomcatID" != "" ] ; then
  echo "Tomcat Server[$tomcat_path、进程ID:$TomcatID] Was Started! Begin To Shutdown Tomcat Server!"
  sh /usr/dev/tomcat/bin/shutdown.sh
  echo "Tomcat Server[$tomcat_path] Was Shutdown! Begin To Restart Tomcat Server!"
  sh /usr/dev/tomcat/bin/startup.sh
  echo "Tomcat Server[$tomcat_path] Was Started!"
else
  echo "Tomcat Server[$tomcat_path] Has Not Started! Begin to Start Tomcat Server!"
  sh /usr/dev/tomcat/bin/startup.sh
  echo "Tomcat Server[$tomcat_path] Was Started!"
fi
NewTomcatID=$(ps -ef |grep tomcat |grep -w $tomcat_path|grep -v 'grep'|awk '{print $2}')
if [ "$NewTomcatID" != "" ] ; then
  echo "#############################################Success:Tomcat Server[$tomcat_path、进程ID:$NewTomcatID]重启完毕!#############################################"
else
  echo "################################################Fail:Tomcat Server[$tomcat_path]重启失败!############################################"
fi

 jar包命令:

Windows:

echo off
//关闭java进程
for %%a in (8088) do (
    set pid=0
    for /f "tokens=2,5" %%b in ('netstat -ano ^| findstr ":%%a"') do (
        set temp=%%b
        for /f "usebackq delims=: tokens=1,2" %%i in (`set temp`) do (
            if %%j==%%a (
                taskkill /f /pid %%c
                set pid=%%c
                echo 端口号【%%a】相关进程以杀死
            ) else (
                echo 不是本机占用端口【%%a】
            )
        )
    )
    if !pid!==0 (
       echo 端口号【%%a】没有占用
    )
)
echo 'close java project'
//为了保险起见等待进程3s关闭结束
ping 127.0.0.1 -n 3
echo 'start java project'
start java -jar test.jar  --spring.profiles.active=test
exit

 Linux:

根据jar包名称停止进程

ps -ef | grep -w "el-tm-0.0.1-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}'  | xargs kill -9;

启动jar包
 

nohup java -jar el-tm-0.0.1-SNAPSHOT.jar > catalina.out  2>&1 &

两条命令可以一起执行


版权声明:本文为lou_xy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。