1

我有一个包含多个应用程序的项目。我有一个战争和一个 EAR 包。我正在使用 Glassfish、Netbeans 和 Maven。

问题是每次我在 jsf 页面中进行小改动时,我都必须构建项目并从一开始就在服务器上运行它(部署)。

此外,我已将 WAR 的构建 -> 编译“保存时编译”属性更改为“仅用于应用程序执行”。同样在项目属性运行-> 我已启用保存时部署。

我仍然必须从头开始重新部署它才能看到变化。请帮忙,这需要我的时间!

谢谢,萨拉。

4

2 回答 2

2

确保 PROJECT_STAGE 设置为 Development。如果它在生产中,您的 JSF 实现可能会缓存已编译的版本,并且不会检查磁盘上的更改。

您的 web.xml 中应该有类似的内容

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

顺便说一句,我只在 netbeans java-ee 项目中使用过一次 maven,使用 maven 比普通的 netbeans 项目慢。如果我没记错的话,maven 总是会建立新的战争并进行部署。netbeans 项目执行所谓的就地部署,这意味着它直接使用项目中的文件,因此即使不重新部署,也可以获取对例如 JSF 页面或 CSS 的任何更改。仅在更改 java 代码和部署描述符时才需要重新部署。

于 2012-08-15T17:31:35.160 回答
1

NetBeans 提供了“保存时部署”功能。但是,它仍会重新部署完整的应用程序。尽管它声称能够保留会话,但它仍然需要时间。

您可能想查看JRebel - 可以立即处理应用内更新的 JVM 插件。

NetBeans 7.1 的插件可在此处获得:http ://plugins.netbeans.org/plugin/22254/jrebel-netbeans-plugin 对于 NetBeans 7.2,该插件正在开发中。

于 2012-08-15T17:08:22.473 回答