侧边栏壁纸
博主头像
Lin2J博主等级

升级了服务器,访问应该会更加流畅🇨🇳

  • 累计撰写 94 篇文章
  • 累计创建 39 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

我的第一个 Intellij 插件上线了

Lin2J
2022-06-30 / 0 评论 / 0 点赞 / 47 阅读 / 1,300 字 / 正在检测是否收录...

Simple Deployment

Simple Deployment

方便开发过程中部署升级服务的 Intellij 平台插件

Simple Deployment 是我借鉴 Alibaba Cloud Toolkit 插件开发的一个方便自己在开发过程中部署服务的插件。

相比较 Aliabab Cloud Toolkit,我开发的插件功能会少很多很多,因为 ACT 很多的功能我都用不上,它对于我来说有点臃肿。

因此,我只取自己关注的那部分功能进行开发,这部分就是对服务器的管理以及发布的过程。

我给这个插件起这个名是因为它的功能真的很少很简单,不过我会不断地优化它,完善它的功能。

这也是我开发的第一款 Idea 插件,很多问题都是通过长时间的搜索才一点一点的解决的,后续我也打算将开发插件的过程写出来。

👉👉 去插件市场下载

✨✨ Github 地址

支持

如果这个插件对你有帮助的话,请动动小手给仓库一个 star ⭐️⭐️。

功能

服务器管理

你可以用这个插件添加多台服务器,然后以此为基础进行命令执行、文件上传和应用部署。

添加服务器之后,可以直接通过终端按钮建立一个SSH连接。

这个功能是自己实现了一个 AbstractTerminalRunner 的子类,这样社区版的 Idea 也可以使用这个功能。

其实 com.intellij.modules.ultimate 模块下有一个 remote-run 插件已经有一个实现好的 AbstractTerminalRunner,只不过社区版用不了这个插件。

考虑之后,我还是决定自己实现 AbstractTerminalRunner,照顾一下社区版的用户。

add server

命令管理

你可以为某一台服务器添加一些备用命令,然后直接执行。每一台服务器的命令都是隔离的,这样有助于命令的管理。

命令在添加的时候,需要使用绝对路径来指定命令在远程服务器执行时所在的目录。

目前只能执行简单的命令,太过复杂的命令建议写成脚本放到服务器之后再执行脚本,我平时部署服务也是用这种方式。

如果使用了像tail -f不是一次性返回所有信息的命令,会导致当前线程阻塞,因为读取的流一直没有给一个终止符。

command

文件上传

你可以使用面板上的上传按钮进行本地文件的上传。目前并不能从服务器下载文件,以后大概率也不会加上这个功能。

我将上传时选择的本地文件和远程目录组合起来,作为一个上传配置来管理,这样可以下次使用时无需重复地进行本地文件和远程目录的选择。

部署

这里只能采用一些简单的部署方式,首先是上传程序文件到指定的远程目录,然后在该目录下执行启动命令。因为我日常部署服务大概就是这个顺序。

部署方案其实就是在上传配置的基础上,选择上传后需要执行的命令。

upload

待实现

  •  添加/删除服务器
  •  添加/编辑/删除命令
  •  上传文件
  •  部署服务
  •  打开终端
  •  配置导入/导出
  •  执行多行脚本
  •  服务器搜索
  •  执行命令/部署时可以选择多台服务器

联系我🐾

在开发 Idea 插件方面我是一个新手,有很多问题可能处理得不是很好。

如果你有什么建议或者遇到什么bug,可以提 issues 也可以邮箱联系我,我会尽快回复你。

📮 linjinjia047@163.com

License

MIT

0

评论区