设置以使用eclipse,maven,spring,hibernate,jsf快速重新加载开发中的Java Web应用程序中的更改

问题描述

我正在使用Eclipse IDE,Maven和Tomcat作为Web服务器来开发J2EE Web应用程序。我设法将其配置为从Eclipse启动和调试,并解决了工作区和Maven的依赖关系。 使用Maven进行构建最多需要120秒(构建每个模块,然后使用war:inplace部署Web应用程序),并且重新加载也需要长达120秒(休眠,春季,jsf等),每次需要在项目中进行更改时,请重新加载完整的服务器。 我的项目结构是一个Maven“复合”项目(在模块中)。当我对现有方法进行更改时,不需要重新加载,但是当我添加1个方法,类,属性等时,我确实需要。 我已经读过使用JRebel是一种选择,但我负担不起,所以我想知道是否没有其他方法可以快速更改业务代码而不必重新加载完整的应用程序。 我还将eclipse设置为不自动重新加载Web应用程序,也不自动同步Web资源(否则我的服务器检测到更改并开始重新加载)。这样可以按需同步资源(单击“发布”按钮),但是使用Java代码似乎不起作用。     

解决方法

        由于您使用的是Eclipse,请从sonatype使用M2Eclipse插件:http://m2eclipse.sonatype.org。这会将由Eclipse编译器创建的类直接导出到Tomcat。无需运行\“ mvn clean compile \”或\“ mvn clean package \”命令:D 只需对您的代码进行更改,Eclipse就会立即发布更改。如果更改为类文件,则必须启动Tomcat,但这对于像样的intel盒上的Java 1.6来说,大约要花费4.83324523秒。 但是请记住,如果让Eclipse进行构建,并在其下调用Maven构建,则Eclipse会困惑为什么目标文件夹的内容发生了变化。您可以通过删除目标文件夹,刷新(f5)项目并强制在Eclipse内部进行清理来减轻这种情况。