专栏首页JadePeng的技术博客VS Code Remote,在服务器上开发程序,开启全新开发模式

VS Code Remote,在服务器上开发程序,开启全新开发模式

一直使用Idea开发java 程序,头疼的是太太太占用内存了,笔记本电脑经常卡爆,在服务器开发的话又太麻烦,VS Code Remote的带来,解决了这一烦恼。下面来实战一下。

VS Code Remote

2019 年 5 月 3 日,在 PyCon 2019 大会上,微软发布了 VS Code Remote,开启了远程开发的新时代 。

Visual Studio Code Remote 允许开发者将容器,远程计算机,或 Windows Subsystem for Linux (WSL) 作为完整的开发环境。你可以:

  • 在部署相同的操作系统上进行开发,或者使用更大或更专业的硬件。
  • 把开发环境作为沙箱,以避免影响本地计算机配置。
  • 让新手轻松上手,让每个人都保持一致的开发环境。
  • 使用原本在本地环境不可用的工具或运行时,或者管理它们的多个版本。
  • 在 WSL 里开发 Linux 应用。
  • 从多台不同的计算机访问现有的开发环境。
  • 调试在其他位置(比如客户网站或云端)运行的应用程序。

所有以上的功能,并不需要在你的本地开发环境有源代码。通过 VS Code Remote,轻松连接上远程环境,在本地进行开发。

下面来实战。

安装vs code insiders

需要先安装最新的内部体验版,https://code.visualstudio.com/insiders/

然后安装Remote Development插件

https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack

为了简单起见,我们采用SSH模式。需要先在windows机器安装OpenSSH

windows 10 安装OpenSSH

使用 PowerShell 安装 OpenSSH

若要安装使用 PowerShell 的 OpenSSH,请首先以管理员身份启动 PowerShell。 若要确保 OpenSSH 功能以安装方式提供:

PowerShell复制

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

# This should return the following output:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

然后,安装服务器和/或客户端功能:

PowerShell复制

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# Both of these should return the following output:

Path          :
Online        : True
RestartNeeded : False

SSH 认证

  • 先ssh-keygen生车密钥
  • 然后ssh-copy-id 到服务器
 ssh-copy-id root@YOUR-SERVER-IP
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/c/Users/jqpeng/.ssh/id_ed25519.pub"
The authenticity of host 'YOUR-SERVER-IP' can't be established.
ECDSA key fingerprint is SHA256:HRwsmslg5ge+JYcOjW6zRtUxrFeWJ5V2AojlIvLaykc.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filterout any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@YOUR-SERVER-IP's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@YOUR-SERVER-IP'"
and check to make sure that only the key(s) you wanted were added.

使用VS code inside 开发程序

准备工作:

  • 确保服务器已有JDK,mvn,没有的话先安装好
  • 将代码签出到服务器一个目录

打开VS code,命令行:

选择connect to host:

然后输入root@YOUR_SERVETR_IP

回车,VS 会自动在服务器准备相关环境。

搞定后,点击文件打开文件夹,VS Code会列出服务器的目录,选择项目所在地址打开即可。

接下来安装必要的语言插件,打开一个java文件,vs code会自动图惨案安装一些插件,把java相关的安装好:

调试程序

打开包含main的java文件,点击调试菜单,会自动生成一个启动文件,配置下即可:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "AimindWebApplication",
            "request": "launch",
            "mainClass": "com.xxx.xxx.XXXWebApplication"
        }
    ]
}

然后启动。

惊喜的发现,在main函数上方,自动出现了RUN|DEBUG,见下图,点击debug即可启动调试

在调试控制台可以看到对应的输出。

内存占用

之前IDEA启动调试后,内存占用2G+,VS code呢?400M+!

把耗费计算资源、内存的都放到服务器上去执行了,本地只需要负责View,所以资源占用极小。


作者:Jadepeng 出处:jqpeng的技术记事本--http://www.cnblogs.com/xiaoqi 您的支持是对博主最大的鼓励,感谢您的认真阅读。 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 知识图谱推理与实践(3) -- jena自定义builtin

    在第2篇里,介绍了jena的The general purpose rule engine(通用规则引擎)及其使用,本篇继续探究,如何自定义builtin。

    用户1177380
  • HTML5录音控件

    最近的项目又需要用到录音,年前有过调研,再次翻出来使用,这里做一个记录。 HTML5提供了录音支持,因此可以方便使用HTML5来录音,来实现录音、语音识别等功能...

    用户1177380
  • C# 词典数据结构设计【附demo】

    分析 要建立词典,最基本的应该有词典的描述信息、词典索引文件以及词典数据文件。 /// <summary> /// 索引文件 /// </summary>...

    用户1177380
  • JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结.md

    因为建立数据库连接是一个非常耗时、耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完...

    杨校
  • 基于深度模型的人脸对齐和姿态标准化

    美好世界 Wonderful world 相隔41天,Edison又回来了,由于自己和团队的事情比较多,没有在我们的“计算机视觉战队”平台花费过多的精力,今天我...

    计算机视觉研究院
  • 让 JavaScript 与 CSS 和 Sass 对话

    JavaScript 和 CSS 已经并存超过了 20 年。但是在它们之间共享数据非常困难。当然也有大量的尝试。但是我所想到的是一些简单而直观的内容——不涉及结...

    疯狂的技术宅
  • 比较13种算法在165个数据集上的表现,你猜哪个最好?

    量化投资与机器学习微信公众号
  • 缓慢的update语句性能分析(r6笔记第61天)

    最近处理一个问题的时候,先是收到DB time升高的报警,然后查看DB time的情况发现,已经有近1000%的负载了。 ? 带着好奇心想看看到底是什么样的...

    jeanron100
  • 大型.NET ERP系统的20条数据库设计规范

    数据库设计规范是个技术含量相对低的话题,只需要对标准和规范的坚持即可做到。当系统越来越庞大,严格控制数据库的设计人员,并且有一份规范书供执行参考。在程序框架中,...

    逸鹏
  • 使用Makefile构建Docker

    刚开始学习docker命令的时候,很喜欢一个字一个字敲,因为这样会记住命令。后来熟悉了之后,每次想要做一些操作的时候就不得不 重复的输入以前的命令。当切换一个...

    Ryan-Miao

扫码关注云+社区

领取腾讯云代金券