Netbeans在保存时部署:它应该如何工作?

我正在尝试在Netbeans中正确设置部署保存(或在保存时编译,或者我应该设置的任何内容)。

我正在努力实现这个目标:

1)如果结构没有改变,在需要时热替换一些类(按下按钮,新代码替换旧代码)

2)在保存时将我的jsf页面(.xhtml)复制到glassfish

1)大部分时间都有效; 它有时不会在我多次部署之后(为什么?),或者如果Netbeans因任何原因决定它应该部署整个事物(它确实……有时)2)在某个项目中工作,而不是在其他项目中工作

看起来像黑魔法。

它应该如何工作? 我似乎没有1)和2)同时为我的所有项目工作。 我该如何配置? 我一定做错了,我只需要知道清单是什么。

我不久前打开了这个: https : //netbeans.org/bugzilla/show_bug.cgi?id = 218806

更新:这是一个maven项目

Jira问题的更新应该澄清:

目前有两个重要特性: – >编译保存(将被称为CoS),这基本上意味着您的Java文件在保存时会立即编译(通常是目标/类)。

– > Deploy on Save(将被称为DoS)是一项补充function,使您可以在保存时立即将.class文件更改部署到服务器。

所以目前你几乎没有可能:

1)打开(CoS和DoS) – >这意味着您更改的.java文件将在保存时编译并重新部署到服务器,并且您的静态资源(html,jsp等)将被复制到服务器之后保存。

2)关闭DoS但让CoS打开 – >在这种情况下,您将丢失与“服务器刷新”相关的所有内容。 这意味着您应该在目标/类中编译实际的类文件,但您不会在浏览器中看到任何更改

3)关闭两个 – > NB让你负责构建/部署

– >在禁用CoS时激活DoS没有语义意义,这就是为什么如果禁用CoS,NetBeans会自动禁用DoS

我该如何配置?

所以这里的结论是,你没有做错任何事情,你不能这样配置它.NetBeans只是不支持这种可能性。 但好处是我现在开始研究问题218345,这正是你所需要的。 将有一个名为“保存时复制静态资源”的新复选框(已在Ant Web项目中可用),允许您在禁用DoS时复制html / jsp / jsf页面。

我经历了完全相同的行为。 Ant没有问题,但使用maven进行热部署无法正常工作。 到目前为止你刚才写的是什么。

答案是切换到Eclipse> = 4.您可以使用maven在控制台中转换NetBeans项目:

mvn eclipse:eclipse 

您需要的只是适用于您的应用服务器的适配器,例如GlassFish 。 尝试一下,值得一试。

这些function已添加到NetBeans中,此答案显示了如何激活它们:

https://stackoverflow.com/a/21702534/1233661

右键单击您的项目,然后选择“属性”。 现在,单击“运行”选项,在此处选择“部署”。