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

时间:2014-04-23 14:50:00

标签: java tomcat ssh intellij-idea jrebel

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

e.g。

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

我今天通过VNC进入我的工作机器,然后在我运行的Tomcat实例上执行“更新类和资源”的IntelliJ处理这个,然后退出。

这是相当愚蠢的,因为我已经SSH了。有没有办法通过命令行开始这个过程?

2 个答案:

答案 0 :(得分:1)

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将照常工作 - 监视指定位置的更改,并在应用程序中使用它们后立即重新加载类/资源。

答案 1 :(得分:0)

我没有完全遵循你的尝试。但是如果我遵循,你基本上想要通过SSH向远程服务器发出命令,理想情况下,从IntelliJ IDEA中启动它。你可以:

  1. 使用终端窗口(工具>打开终端),启动ssh连接,然后手动发出命令。
  2. 创建外部工具定义,该定义使用plink(或等效项)对远程服务器执行ssh命令。您可以在设置>中创建外部工具定义。 [IDE设置]>外部工具。请参阅下面的屏幕截图以获取示例。定义(或其组如果使用组将结构添加到定义中)将显示在“工具”菜单上。您还可以通过设置>映射快捷方式。 [IDE设置]>键盘映射>外部工具。对于多命令序列,您也可以
    • 编写一个执行该操作的本地脚本,并使用外部工具定义启动脚本
    • 编写远程脚本并使用外部工具定义中的plink来运行它
    • 将命令放在本地文件中运行,并使用plink -m {file}运行它们。
  3. enter image description here