现在面临一个场景,就是现在我们开发者使用IDEA开发完后台代码,需要部署到windows服务器上面。我们后台现在一般使用SpringBoot进行开发,然后打成一个jar包,丢到服务器上java -jar去运行。那么想做完上面的这些就需要经历以下步骤:
远程连接到windows服务器把springboot项目打成jar包复制jar包上传到服务器cmd运行java -jar以上四个步骤,假如在涉及前后端对接开发的时候,部署起来就比较麻烦,每修改一次代码,就需要经历以上四个步骤,特别繁琐。所以,在网上找了一下工具,可以支持直接部署到相应的服务器,这就是Alibaba Cloud Toolkit
查看官方文档,发现已经有了相关的教程了,那为什么还要写这篇文章呢?因为我按照官方教程进行操作,发现还是有一些地方比较模糊,所以才写了一篇我的经验总结。
第一步:IDEA按照Alibaba Cloud Toolkit插件
和安装别的插件一样,IDEA里面搜索Alibaba Cloud Toolkit(你的IDEA的版本必须是2018.2或以上版本才可以搜索出来),安装,重启IDEA。
第二步:需配置支持SSH标准协议的Windows服务器
下载PowerShell安装包,在Windows服务器中进行安装
下载OpenSSH安装包,执行官网的步骤
第三步:Test Connection来测试是否能成功连接服务器
安装好了插件之后,在IntelliJ IDEA顶部菜单栏中选择Tools > Alibaba Cloud > Alibaba Cloud View > Host,在弹出的Host页签中单击Add Host
点击Test Connection,会出现连接成功的提示信息,然后点击Save按钮。
第四步:部署应用
在IntelliJ IDEA顶部菜单栏中选择Tools > Alibaba Cloud > Deploy to Host
其中
Maven Build:若当前工程采用Maven构建,可以直接构建并部署。
Target Directory:输入在服务器上的部署路径,如c:\server\tomcat\deploy
After deploy:输入应用启动命令,如c:\server\tomcat\deploy\start.bat
其中,最重要的是买这个bat脚本如何写,我们明白,这个构建工具只是代替我们去执行我们之前的步骤,比如上传jar包,关闭之前运行的程序,运行新上传的代码,那么脚本如下(复制下面的脚本,修改端口号和jar包地址,然后丢到服务器上面去生成bat程序,在After deploy这一栏输入这个bat的地址)
先找出端口号占用的PID,然后杀死这个进程,然后运行我们的jar包。
@echo off&title 正在检测... set portnum=你的端口号 netstat -ano|findstr 0.0.0.0:你的端口号>1.txt for /f "tokens=5" %%a in (1.txt) do ( IF "%%a" NEQ "" ( echo 检测到本地%portnum%端口对应的PID号"%%a" taskkill /f /pid %%a java -jar xxxxxxxxxxxx.jar pause>nul ) else( echo.未检测到本地%portnum%端口 exit )全部填写完毕之后,点击下面的run按钮,会发现成功的一键部署到了windows服务器(Linux服务器查看官方文档就可以,官方文档还是比较详细的,最麻烦的就是上面的bat程序如何写,官方文档没有说,只有Linux服务器的例子)上面。
到这里,我们就实现了一键部署程序到服务器上面而不再需要之前经过好几个步骤的繁琐操作了。