【问题标题】:Netbeans deploy on save: how is it supposed to work?Netbeans 在保存时部署:它应该如何工作?
【发布时间】:2013-08-26 19:24:42
【问题描述】:

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

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

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

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

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

看起来像黑魔法。

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

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

更新:这是一个 Maven 项目

【问题讨论】:

  • 同样的行为在这里......这黑魔法真的让我生气......

标签: java jakarta-ee netbeans glassfish


【解决方案1】:

这个来自 Jira 问题的更新应该澄清它:

目前有两个重要功能: --> Compile on Save(将被称为 CoS)这基本上意味着您的 java 文件在您保存它们时会立即编译 (通常是目标/类)。

--> Deploy on Save(将被称为 DoS)是一种补充功能,使您能够将 .class 文件更改部署到服务器 当你保存它们时立即。

所以目前你的可能性很小:

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

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

3) 关闭两者 --> NB 让您负责构建/部署

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

我应该如何配置它?

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

【讨论】:

    【解决方案2】:

    我经历了完全相同的行为。 Ant 没有问题,但是 maven 热部署不能正常工作。到目前为止你刚刚写的。

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

    mvn eclipse:eclipse
    

    然后,您只需要一个适用于您的应用服务器的适配器,例如为GlassFish。试试看,值得一试。

    【讨论】:

    • 你在开玩笑。它在 80% 的时间内都有效,我只需要澄清如何正确配置它。 Eclipse 本身不支持 maven,必须将它对 maven 项目的理解与其内部项目设置同步是一件非常痛苦的事情。 Netbeans 在大多数方面都远胜于其他,没有可比性。
    • 不,我不是在开玩笑。我为什么要?您可以尝试另一件事:JRebel 但这是一个您似乎不太喜欢的插件,而且它也不是免费的......
    • JRebel 是一个选项,但我真的不需要它。我只需要一些澄清,这是给出的(见我的回答描述它)。下一个版本有我想要的。这一点,再加上在检查目录部署时,glassfish 会自动选择目标中静态资源的更新。
    • 问题是关于如何正确使用IDE,您建议更换IDE。它与问题无关...如果您不知道如何解决此问题,最好什么也不说。
    猜你喜欢
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多