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

标签 java maven netbeans glassfish

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

但是,如果我将同一项目配置为在远程服务器上运行,则当我单击“保存”按钮时,它不会自动部署任何内容,我必须手动单击“运行”按钮。

我做错了什么吗?

谢谢!

最佳答案

不,就是这样。

热代码替换可以在 IDE 中工作,因为它可以控制 java 进程和类加载。一旦到达远程计算机,该进程就无法再由您的 IDE 控制。

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

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

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

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

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

关于java - 使用 Netbeans 在远程服务器上热部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085625/

相关文章:

Java Spring application.properties 环境变量或默认值

Eclipse m2e 上的 Maven Jboss 原型(prototype)目录

java - Maven:不正确(且不稳定)的传递依赖版本

java - 从 Netbeans 构建并运行 Java 应用程序

java - 如何从字符串中删除特定字符?

java - 为什么程序没有通过我的@override 类

java - protobuf-net 序列化/反序列化 DateTime 和 Guid 类型

java - Maven with Jenkins - 更新依赖的父 pom 版本

java - 频繁的 Netbeans 卡住

java - 在 Linux 操作系统上使用正确的 JDK 或更改 Netbeans 中的默认值