intellij-idea - 使用 IntelliJ IDE 进行本地开发,但从远程机器进行测试
问题描述
我正在开发一个存储库,我必须从数百万个文件中提取一些特征。
对我来说,当前的工作流程是:
- 在 IntelliJ 中编写代码
- 运行单元测试
- 小数据试运行
- ssh 到远程机器
- sftp 当前代码到远程机器
- 在具有所有数百万个文件的服务器上运行
- 查看日志异常并找出代码在边缘情况下失败的地方
- 解决这些问题并从第 1 步开始重复
我的问题是三方面的:
- 有没有一种简单的方法可以自动与远程机器同步代码(我知道我提交到 git,然后在机器中提取更改。但是除了设置 rsync 等之外还有其他方法吗?)
- 我可以从 IDE 直接在远程机器上运行代码并以这种方式进行调试吗?
解决方案
1) 有很多方法可以同步您的代码。有时最好的方法是在 Python 或 sh 中创建一种部署脚本,如果您不想提交和推送要在服务器上测试的任何更改。您可以在此处使用sftp
或scp
使用更多自动化(使用gzip
等)。Git 和 rsync 是这里比较成熟的解决方案。但是使用 VCS,您的问题将更容易重现并且更容易找到。
2)您可以连接到远程进程以直接从 IntelliJ 对其进行调试。有一个官方教程:https ://www.jetbrains.com/help/idea/tutorial-remote-debug.html (但这取决于您的安全设置,因为Java调试协议本身并不安全,您可能需要为此设置SSH隧道)
3) 另一个更激进的选择:您可以在服务器上运行 IntelliJ IDEA 本身并直接调试。您可以使用 Projector - 一个开源项目,可让您在服务器上使用浏览器中的 UI 运行 IntelliJ(无需 X11 即可运行)。我建议您首先查看此存储库https://github.com/JetBrains/projector-docker或按照此处的说明在服务器上配置 IntelliJ:https ://github.com/JetBrains/projector-server 。
推荐阅读
- visual-studio-code - 在 Salesforce 组织中部署 .lib 文件
- r - 如何通过组合当前变量名和第 1 行值来修改变量名?
- python - 如何在我的 Python Nix 表达式中修复 `[Errno 13] Permission denied: '/nix/store/...'`?
- shell - 根据唯一值过滤列表中的每个子域
- blazor - 桌面上的 Blazor 按钮 onclick 和移动设备上的 ontouchstart
- java - Getter、Setter 和 NullPointerException
- javascript - 将材质 ui 的样式移动到 React 中的另一个文件
- html - 如何在 vue 中创建模态弹出窗口
- sql - SQL 计算区域 A 和 B 的每个销售人员的销售关闭百分比
- c# - 如何解决错误:无法将类型“long”隐式转换为“bool”?