使用 Netbeans 在远程服务器上热部署

Hot Deploy on remote server with Netbeans

我的 Maven 项目在本地 glassfish 服务器上配置为 运行。当我对 Java class 或 JSP 文件进行任何更改时,它会自动部署。

但是,如果我在远程服务器上将同一个项目配置为 运行,当我点击保存按钮时它不会自动部署任何东西,我必须手动点击 "Run" 按钮。

我做错了什么吗?

谢谢!

不,它是这样的。

热代码替换在 IDE 内工作,因为它可以控制 java 进程和 class 加载。一旦在远程机器上,该过程将不再由您的 IDE.

控制

根据您使用的框架(Spring、JPA 等),即使是热代码替换也可能达不到预期效果,因为这些框架需要在启动期间进行初始化。

JDK本身只支持某种变化。通常签名更改不会重新加载或添加静态方法。

如果您需要更好的热代码重载支持,您可以尝试 JRebel。它是一个商业工具,但它支持更多的重新加载变体,也有一些框架支持。

我听说过一些公司也在生产服务器上使用它。

与 maven 相关,您只需要注意,如果 maven 部署了 .war 或 .ear 文件,它也不受您的 IDE 控制(或者有更严格的限制)。让 IDE 在本地完成工作通常是最好的方法。