《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 网络 「网络」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

本文也是记录一下 IDEA 支持 WSL、SSH、Docker 运行 这个新特性的体验,这是我一直想要的功能。不用进行过多设置就让代码 Run 起来, 而且还支持断点 Debug,跟本地启动一样,不过功能还有待改进。

本来是说不要随便更新 IDEA 的了,但看到 IDEA 新版本特性后,果断、立马点击了更新,然后更新到 IDEA 2021.3 也挺久了,不过最近比较忙(主要是因为懒),所以也没有好好进行体验一下这些新功能。

先来说一下日常的使用的体验:

  • 启动界面是越来越花里胡哨的了,功能也是越来越花里胡哨的了
  • 更新完成后部分插件也要更新,不然旧版插件不支持新版
  • 目前还没有遇到什么坑
  • Run/Debug Configuration 的配置不像以前那样明显易用

新版的主要更新内容

  • Space 集成:(我公司团队不用这个,我自己一个人也用不到这个,忽略)
  • 支持 Java 16 :(打扰了,日常用着 8 和 11,先不体验吧)
  • 更好的 Git 支持:日常合代码都是直接用 IDEA 的
  • Windows 任务更好的支持:我觉得没有必要,固定任务栏直接启动也挺快的啦
  • Code With Me:感觉带妹子学 Java 的话,这是个特别棒的功能
  • 支持 WSL、SSH、Docker 运行:就是看着这个特性而升级的,不过社区版不支持这个功能

自从 VS Code 支持 Remote 之后,我日常要在开发服务器写一些脚本、跑一些脚本的时候,都是直接使用 VS Code SSH 连接服务器的,感觉超级方便(哈哈哈 我还是用不习惯 vim)。所以一直想 IDEA 也可以支持 Remote、WSL。

1. 开始之前

  • 环境和软件:Windows 10 , WSL 2,Docker for Windows,OpenJDK 11,IDEA 2021.3 Ultimate
  • 项目 1:一个普通的 Java 项目,写了一个 Hell World 的 class
  • 项目 2:Gradle 构建的 Spring Boot Web, 写了一个 RESTful API

总体的代码都比较简单,就不放源码了。

设置入口:设置 WSL、SSH、Docker 运行的入口在 Run/Debug Configuration 里,默认是 Local machine 跟以前的本地运行一样。

设置 Run On

2. 使用 WSL 运行

WSL 1 不太清楚是否支持,我这里用的是 WSL 2 。

首先需要在 WSL 里安装 JDK 和设置一下 JAVA_HOME,设置入口见上面,新建 WSL 的 Run On 环境,选择好你的 WSL 发行版,如果出现绿色的 successfully 表示可以使用这个 WSL。

选择 WSL 发行版

如果还需要其他运行参数,比如你可以在这里设置 JAVA_HOME ,在接下来的界面设置一下即可

额外的一些配置

设置完成后,选择 WSL ,就可以和在本地一样 Run/Debug 。

3. 使用 SSH 在远程环境运行

这个总体体验很不好,每次运行都要上传一堆依赖的 jar 包,不知道是不是我没有配置好 rsync 还是没有优化好。还有一个待优化的点是最好可以手动选择 SSH 还是 Password 的方式登录。而不是要像下图那样子需要先自己配置一下:

  • 没有使用 rsync 的话,每次所有的 class 和依赖的 jar 都要上传
  • 使用 rsync 后,像 Gradle、Maven 引入的依赖每次还是要上传

如果使用 SSH 方式登录的话,需要先配置一下 SSH,然后再在 Run On 里选择新建一个 SSH Run Target:

图片

新建 Run Target,选择 New,或者 Existing 也就是上面配置的 SSH:

Existing 是表示已经配置好的 SSH

设置 JAVA_HOME 和在远程服务器的目录:

选择远程目录

这样子配置好之后,就可以像本地一样正常的 Run 和 Debug。

4. 使用 Docker 运行

Docker 方式,先前我还以为会比较麻烦,一来我对 Docker 不是很熟悉,二来我也不知道该怎么配置 Dockerfile,但体验下来发现也可以很丝滑的,Dockerfile 文件的配置就一行搞定了,不得不说有点出乎我的意料

# 刚开始我也不知道怎么配置,就只放了这么一句,发现竟然就可以了
FROM openjdk:11.0.11-oraclelinux7

新建一个 Run Target,选择 Docker 会弹出这个界面。首先要根据下图先设置一下 Docker Server。Dockerfile 就使用上面的那个 Dockerfile 就可以了:

有点小 bug,Run options 的配置不生效,而是使用了随机端口映射,Spring Boot 的那个项目启动后,IDEA 会告诉告诉你映射到那个端口了。

图片

Docker 服务的设置

Docker Server 设置,这里使用了本地的 Docker:

设置使用本地的 Docker

出现这样的界面就表示启动成功了:

docker 的配置也完成

剩下的正常 Run Debug。

4. 总结

不管是 WSL 、SSH 还是 Docker,简单配置一下真的跟本地运行没有太大的区别,正常的 Run、正常的 Debug。对于需要这些功能的开发人员,还是比较建议升级的。

这个 IDEA 的新特性一套体验下来,虽然有几个前面所提的问题,但不得不说:IDEA YYDS!。

文章目录
  1. 1. 先来说一下日常的使用的体验:
  2. 2. 新版的主要更新内容
  3. 3. 1. 开始之前
  4. 4. 2. 使用 WSL 运行
  5. 5. 3. 使用 SSH 在远程环境运行
  6. 6. 4. 使用 Docker 运行
  7. 7. 4. 总结