在使用eclipse、maven、spring、hibernate和jsf开发的JavaWeb应用程序中快速重新加载更改的设置

在使用eclipse、maven、spring、hibernate和jsf开发的JavaWeb应用程序中快速重新加载更改的设置,java,performance,maven,jsf,Java,Performance,Maven,Jsf,我正在使用EclipseIDE、Maven和Tomcat作为web服务器开发一个J2EE web应用程序。我设法将其配置为从eclipse启动和调试,并从workspace和Maven解决依赖关系 使用Maven构建需要120秒(构建每个模块,然后使用war:inplace部署web应用程序),重新加载也需要120秒(hibernate、spring、jsf,等等),每次需要在项目中进行更改时重新加载完整的服务器是一件非常痛苦的事情 我的项目结构是一个Maven“复合”项目(在模块中)。当我对现

我正在使用EclipseIDEMavenTomcat作为web服务器开发一个J2EE web应用程序。我设法将其配置为从eclipse启动和调试,并从workspace和Maven解决依赖关系

使用Maven构建需要120秒(构建每个模块,然后使用war:inplace部署web应用程序),重新加载也需要120秒(hibernatespringjsf,等等),每次需要在项目中进行更改时重新加载完整的服务器是一件非常痛苦的事情

我的项目结构是一个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内部进行清理来缓解此问题。

hace-look它可能会有所帮助:)感谢链接,我将仔细查看;-)谢谢你的回答。我确实使用了M2Eclipse插件,但在我将模块安装到本地存储库并再次部署webapp之前,模块中的更改不会刷新到webapp中。如果每次需要生成时都必须删除目标文件夹,情况会变得更糟。需要刷新的文件太多,需要花费更多的时间。我的webapp是一个普通的应用:)除此之外,我的webapp初始化(hibernate、spring等)花费的时间太长,所以我想在重新加载时尽可能节省时间。我曾尝试将项目模块依赖项添加为“链接项目”,但更改既不可见也不可见。请相信我,情况不应该如此。现在,我正在对一个war项目进行更改,它直接部署到tomcat,而不需要进行maven构建。你的项目包装是一场战争吗?您可以发布pom文件吗?更改“webapp”文件(facelets、css、img等)会自动发布,无需重新加载,但当更改依赖项jar中的类时,更改不会自动刷新。另一方面,如果我在webapp项目中修改一个类(我有backbeans),根据更改情况,我确实可以看到它,而不需要重新加载pom中的依赖项。xml模块项目被放入工作区,并且在Eclipse中启用了enable workspace resolution