我的 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/