Run Targets

之前有写过一篇博客 IDEA 在本地开发基于 Docker 运行环境项目的实践方式,这种方式的配置、操作相对繁琐,Debug 体验堪忧。

不过,IDEA 2021.1 带来了一个新功能 Run Targets,简化了在远程环境运行、调试程序的操作。

贴一张官网的 GIF 图:

目前 Run Targets 支持:

  • SSH
  • Docker
  • WSL / WSL2(Windows 环境)

SSH

通过 SSH 的方式需要确保机器包含 JDK 环境。

我把自己树莓派 4 通过 SSH 的方式添加了进来。

界面中有个选项 Use rsync,使用 rsync 有可能会减少文件传输的时间。

接下来在 Run on 选中刚才添加的树莓派 4。

点击 Debug 启动应用。

开始通过 rsync 同步文件。

编译好的的 class 文件以及依赖的 JAR 都需要复制过去,如果项目依赖的 Jar 比较多,这个过程会多花一些时间。

接下来项目就启动成功了。如果是 Tomcat 之类的需要暴露端口的应用,IDEA 还会贴心地将远程机器的端口映射到本地以便于访问。

Debug 体验也和本地没有差异。

总之,通过 Run Targets,只要能 SSH 并且拥有 JDK 环境,就能轻松的在指定机器调试应用了。

唯一的缺点是每次重新运行都需要完整复制一次依赖的 JAR,比较消耗时间。如果能够只复制变动的文件,体验可能会更好。

Docker

新建一个 Docker Target,默认界面是选择 Build 一个镜像。不过,如果没有特殊需求,选择 pull 一个常见的 JDK 镜像就好了。


后续的步骤就和本文最前面的 GIF 图差不多了。

容器的端口会自动映射到本地端口中,Debug 体验也和直接运行没有差别。

应用场景

在本地开发分布式项目

本人平时参与 Apache ShardingSphere ElasticJob 的开发。

其中,有一个 Failover 相关的 Bug apache/shardingsphere-elasticjob#714,Failover 分布式部署的情况下会失效,本地同时启动多个节点的情况下无法重现。这样的场景,借助 Run Targets Docker 就很容易在本机模拟多节点部署,或通过 SSH 轻松在本机调试分布式部署的多个进程。

本地开发,远程运行调试

开发机器性能不好或环境受限,但是有性能较好或环境完整的服务器可以使用,这时候就可以本地开发,远程运行、调试。

总结

经过一番体验,Run Targets 是个比较惊艳我的新功能,能够填补我在一些特殊场景的需求。因为功能正式推出不久,还是存在一些体验上的问题,例如 SSH 在依赖较多的应用部署会比较耗时。相信随着后续的迭代,Run Targets 会越做越好。期待未来的更新!

相关资料:

  • Run Targets: Run and Debug your App in the Desired Environment

体验 IntelliJ IDEA 2021.1 Run Targets 远程环境调试程序相关推荐

  1. Cannot run program “F:\JetBrains\IntelliJ IDEA 2021.1\jbr\bin\java.exe“ (in

    关于这个问题我刚开始在百度找到的都是让该JDK路径, IDEA 项目SDK路径, 我就去把我的环境变量重新看了一下没错,又找了一下我的SDK路径,发现里面有我过去残留的jdk版本,我就全部删了,重新将 ...

  2. IntelliJ IDEA 2021.2 正式发布

    IntelliJ IDEA 2021.2 正式发布啦!快来看看有哪些更新内容是你感兴趣的吧~ 关键更新: 新的项目范围的分析允许开发者在编译前跟踪整个小型或中型项目的错误,这个功能只能够在 Intel ...

  3. IntelliJ IDEA 2021.1正式发布!快来看看又有哪些神仙功能加入!

    点击关注公众号,Java干货及时送达 来源:juejin.cn/post/6948605799790805005 先点赞再看,养成好习惯 IntelliJ IDEA 2021.1 EAP版本已经发布了 ...

  4. IntelliJ IDEA 2021.2 正式发布了!

    7月27日,IntelliJ IDEA官方博客消息,新版本 2021.2 正式发布了! 下面是该版本的重要特性及改进内容: 主要更新 新的Project-Wide analysis允许您在编译之前跟踪 ...

  5. IntelliJ IDEA 2021.1更新了好多实用功能,赶紧下载吧!

    IntelliJ IDEA 2021.1 正式版发布了,这个版本最大的更新内容,就是支持WSL 2和JAVA 16了.而且除了支持WSL 2,也支持其他形式的"ssh 远程运行", ...

  6. IntelliJ IDEA 2021.3.2 发布:告别不断建议安装xx插件的提示!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:oschina.net/news/180721/intellij-idea-2021-3-2-released Intelli ...

  7. 亲身体验Intellij Idea从卡顿到顺畅

    亲身体验Intellij Idea从卡顿到顺畅 idea power save mode 指尖飘落的程序 2018-01-16 14:12:12  11991  收藏 1 分类专栏: 工具 版权 po ...

  8. ja-netfilter-all,IntelliJ IDEA 2021.3.2 (Ultimate Edition)

    ja-netfilter-all,IntelliJ IDEA 2021.3.2 (Ultimate Edition) (1)在这个网站 https://jetbra.in/c6d70b01-3b1d- ...

  9. IntelliJ IDEA 2021.1 关闭更新提醒

    官方推出IDEA新版本时,打开工具时总会弹出更新提示,这里记录一下 IntelliJ IDEA 2021.1关闭更新提示的设置路径: 1.关闭更新检查 ①在IDEA中打开设置页: ②设置路径:Appe ...

最新文章

  1. 一个中心、三大原则,阿里这样做智能对话开发平台
  2. 对于容器环境来说 全栈监控究竟意味着什么?
  3. 多目标优化算法(二)MOEAD及MOEAD与NSGA-Ⅱ的对比
  4. 四川大学计算机学院录取,四川大学计算机学院2018年硕士研究生招生拟录取名单及成绩公示...
  5. 约数个数shlqsh
  6. Serverless.com CEO首次访华!探讨无服务器技术落地
  7. js代码判断身份证号合法性
  8. 【渝粤题库】广东开放大学 劳动关系理论与实务 形成性考核
  9. 我的swagger上面怎么没有models_浅析特斯拉Model S的采样板
  10. Mybatis调用oracle 存储过程
  11. Java线程池execute()方法源码解析
  12. 作用域闭包,你真的懂了吗?
  13. T+T+.....+T的递归下降子程序
  14. repeater上EVAL绑定后台方法并且传参数
  15. Redis安装教程(超详细)
  16. TheFatRat自动化渗透工具
  17. html新的页面打开新页面,javascript如何打开新窗口?
  18. Java学习笔记(13)-构造方法
  19. matlab在常微分方程的应用,MATLAB在求解常微分方程中的应用
  20. H指数(h-index)的Python实现

热门文章

  1. AXI4_Stream入门(2): 接口与信号
  2. 为3.7亿用户提供优质服务的微众银行,如何保障应用安全、及时上线
  3. 问题 | iview Row Col 修改样式
  4. Mybatis详解一
  5. NuGet获取的包的版权问题
  6. 微信小程序上拉触底案例添加loading效果
  7. 学内核之二:基于QEMU搭建Linux内核运行调试环境
  8. 用JS实现一个网页版节拍器
  9. Java切面的使用,记录请求日志
  10. P1434 [SHOI2002] 滑雪