java - 在 intellij-run jrebel tomcat 服务器上通过 ssh 重新加载类

标签 java tomcat ssh intellij-idea jrebel

我在我的工作 (*NIX) 机器上有一个通过 IntelliJ 运行的 JRebel+Tomcat 服务器,偶尔我希望在家里 (*NIX) 机器上通过远程连接让 JRebel 更新类/资源SSH。

例如

home $ ssh work
work $ cd workspace/foo/bar/baz
work $ hey-jrebel-go-update-classes

我今天通过 VNC 连接到我的工作机器来处理这个问题,然后在 IntelliJ 中对我正在运行的 Tomcat 实例执行“更新类和资源”,然后注销。

这很愚蠢,因为我已经通过 SSH 登录了。有没有办法通过命令行启动这个过程?

最佳答案

JRebel 具有远程处理功能,可用于通过 HTTP 将更改同步到远程计算机。为此,您应该在远程 Tomcat 上启用 JRebel(通过 -javaagent:jrebel.jar)并启用 JRebel 远程插件以创建用于与 IDE 插件协商的 HTTP 端点。 -Drebel.remoting_plugin=true 即可。

有关更多信息,您可以查看 setting up Remoting with IntelliJ IDEA and Tomcat 的教程.

否则,在不启用远程处理的情况下,您可以使用 rebel.xml 配置文件部署应用程序,该文件将指向展开的应用程序所在的位置,JRebel 将使 Tomcat 从该特定位置加载资源,因此您可以只通过 SSH 从 IntelliJ 同步到该远程位置。然后 JRebel 将照常工作 - 监视指定位置的更改并在应用程序中使用它们时立即重新加载类/资源。

关于java - 在 intellij-run jrebel tomcat 服务器上通过 ssh 重新加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247910/

相关文章:

java - Java中的抽象类——创建对象

java - 如何抑制 ESAPI 库输出的消息

java - 使用 java.util.logging 的好例子

tomcat - Tomcat 服务器状态和管理器应用程序的登录问题

ssh - 如何设置 vagrants 主机 SSH 端口

java - Synthetica JButton 边距

java - 在 Tomcat 中使用 JNDI 关闭连接

tomcat - IE 11 忽略响应中的缓存控制 header

git - 如何将 git ssh 凭据从 wsl 传递到 VScode dev-container

git - 设置 git 以要求 ssh key 文件