我有一个包含多个应用程序的项目。我有一个战争和一个EAR包。我正在使用Glassfish,Netbeans和Maven。
问题是每次我在jsf页面做一个小改动我必须构建项目并从头开始在服务器上运行它(部署)。
我也改变了构建 - >将WAR的“Compile on Save”属性编译为“仅用于应用程序执行”。同样在项目属性Run - >我在save上启用了部署。
我仍然需要从头开始重新部署它以查看更改。请帮忙,这是我的时间!
谢谢, 萨拉。
答案 0 :(得分:2)
确保将PROJECT_STAGE设置为“开发”。如果它正在生产,你的JSF实现可能会缓存已编译的版本,并且不会检查磁盘上的更改。
你的web.xml中应该有这样的东西
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
BTW我只使用了一次使用netbeans java-ee项目的maven,使用maven比普通的netbeans项目慢。如果我没记错的话,maven总会建立一场新的战争并进行部署。 netbeans项目执行所谓的就地部署,这意味着它直接使用项目中的文件,因此即使不重新部署,也可以获取对JSF页面或CSS的任何更改。只有在更改java代码和部署描述符时才需要重新部署。
答案 1 :(得分:1)
NetBeans提供“保存时部署”功能。但是,它仍然重新部署完整的应用程序。尽管它声称能够保留会话,但仍需要时间。
您可能需要查看JRebel - 可以立即处理应用内更新的JVM插件。
NetBeans 7.1的插件可在此处获取:http://plugins.netbeans.org/plugin/22254/jrebel-netbeans-plugin 对于NetBeans 7.2,该插件正在开发中。