学习IntelliJ IDEA之部署至远程执行

IDEAoshi远程执行代码
placeholder image
admin 发布于:2023-04-05 09:20:09
阅读:loading

1.示例过程

一直使用的IDEA 2018.2版本没有发现,后面在使用最新版2022.3版本时发现在执行程序时多了一个执行引擎的功能,于是简单尝试了一下将本地应用程序一键部署至服务器上运行,也就有了本文。

引擎.gif

(第1步)

image.png

(第2步)

image.png

(第3步)

image.png

(第4步)

image.png

(第5步)

image.png

(第6步)

当Run on选项为SSH模式的远程服务器时,直接运行时程序将被编译部署至远程运行,参考编译过程如下:

image.png

执行本地模式时的运行命令如下:

image.png

执行远程模式时的运行命令如下:

image.png

程序代码比较简单,使用oshi组件获取系统信息,包含系统的操作系统硬件等,包含:系统的磁盘、内存、服务、进程、IP地址、网卡、声卡、安装软件等等,本站有对应文章讲解oshi的使用,且顶部菜单的“关于本站”-->"服务器信息"功能就是当前服务器参数获取的一小部分展示。

有一些IDEA的插件和maven的插件可进行远程打包部署不作为本篇的重点,本次将摸索IDEA自带的远程SSH引擎,将本地程序部署至远程服务器执行,并不是专业的应用远程部署,在实际应用中未尝试将Spring Boot程序在远程运行(毕竟会新开端口之类的存在于服务的后端进程),有后续的应用场景时会进行再次应用实践。

部署编译整个过程将会在远程服务器创建一堆的文件夹,并且将相关的文件全部拷贝至远程服务器。

2.参考代码

package cn.chendd.oshi;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import oshi.SystemInfo;

/**
 * 获取系统输出
 *
 * @author chendd
 * @date 2023/4/5 8:51
 */
public class Test {

    public static void main(String[] args) {
        SystemInfo systemInfo = new SystemInfo();
        System.out.println(JSONObject.toJSONString(systemInfo ,
                SerializerFeature.PrettyFormat,
                SerializerFeature.MapSortField,
                SerializerFeature.WriteMapNullValue));
    }

}

3.优缺点

缺点

(1)部署编译整个过程将会在远程服务器创建一堆的文件夹,并且将相关的文件全部拷贝至远程服务器,文件范围非常大;

(2)本地启动一个端口与服务器的端口绑定,程序一旦启动运行,本地IDEA中无法关闭本地的程序服务(或者说我不知道在哪里中断),只能通过结束IDEA进程的方式中断;

优点

(1)程序执行时控制台输出的所有内容在本地IDEA中实时输出,方便跟踪和调试代码;

(2)对于一些跨平台API的验证时,或者针对某些固定服务器开启防火墙时的程序应用;

(3)辅助分析IDEA中集成的各种运行方式的参数配置输出,参考IDEA的各项配置设置后的程序运行命令输出;

4.相关下载

(1)本机Windows系统全量json下载.zip

(2)编译过程.zip

(3)源码工程test.zip


 点赞


 发表评论

当前回复:作者

 评论列表


留言区