ust*_*tun 10 netbeans hotdeploy java-ee jrebel
我是Java EE的新手,并且一直在努力解决部署过程的缓慢问题,并想知道我是否做错了什么.我对Django很有经验,其中代码的更改立即发生,似乎热部署Java EE应用程序有点令人困惑 - 有很多事情声称热部署(Glassfish,Eclipse manic hotdeploy,Jetty hotdeploy,JRebel等. ).
我的项目是一个Maven项目,我正在使用Netbeans进行部署.该站点使用Spring,JSF和Hibernate框架.
在Netbeans中,Deploy on Save,根据以下屏幕截图似乎已启用,但点击/取消点击是不可能的,因为它声称从我的pom.xml获取信息(尽管我的pom.xml中没有这样的字段(仅依赖)).

现在,对某些文件的更改似乎立即生效.其中包括: - JSF文件 - 静态文件
对以下需求部署的更改: - 任何XML文件 - 任何属性文件,甚至本地化属性文件 - 任何Java文件
对这些的更改需要我手动部署,重新部署需要半分钟,即使我目前只有2-3个类,基本上只有一个用户类和一个授权类.该项目目前只允许登录,尽管如此,编译大约需要几秒钟; 容器(Glassfish)似乎消耗了大约600 MB的RAM,甚至在几次部署后也会出现PermGen错误,我需要使用任务管理器来终止java进程.(我已经读过这与每次重新部署后的垃圾收集器泄漏有关,我甚至使用jhat生成一个配置文件,但是提供了一个包含数千个类,我的类,Spring,Hibernate类等的列表)
我也听说过jrebel,并尝试运行它,但似乎它与我的Netbeans版本(7.0)不兼容,即使它似乎运行,对任何java文件的任何修改仍然需要重新部署.
有什么办法可以解决这些问题,或者在Java EE中每次更改任何Java文件后等待大约1分钟是否正常?这个问题严重影响了生产力.
这是部署应用程序时的Glassfish输出:http://pastebin.com/7FhZ6AVh
我既没有找到可信的也没有官方的消息来源,但由于你没有答案,我想指出我发现的两件事.
第一个是NetBeans网站上的这个FAQ,描述了如何为Maven项目启用save编译.默认情况下,此设置似乎处于关闭状态,默认情况下仅适用于测试.为了方便:
转到项目属性对话框,编译面板,以便为主源执行打开它.
第二个是,我必须强调,我并不完全理解这一点,NetBeans部署Web应用程序似乎有两种不同的方式.第一种方式是就地部署,看起来与.war手动将文件部署到服务器相同.第二个是增量部署,如果它类似于增量编译,则意味着当您的应用程序进行热部署时,您只需部署更改的文件.
当您单击Run或Deploy从项目的上下文菜单中时,就地部署似乎是默认的部署方法.当您的项目已经部署并Run再次单击(或使用Run工具栏按钮)时,就会发生增量部署.
我想指出NetBeans FAQ,虽然在netbeans.org网站上不是官方出版物.任何人都可以创建常见问题解答,信息可以并且将在没有修订的情况下过时.
编辑:经过一番反思之后,我决定所谓的增量部署不是一种不同的部署方式,只是你Run的应用程序第二次进行增量部署.
编辑:请注意,上面的说明指向Compile面板,而不是Run您在屏幕截图中选择的面板.这是我的屏幕截图,显示您需要for both application and test execution在Compile面板下拉菜单中选择默认值for test execution only

| 归档时间: |
|
| 查看次数: |
5022 次 |
| 最近记录: |