打开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 &
两条命令可以一起执行