每次进行更改时都必须重新启动tomcat

每次在java代码中进行小的更改时,有没有办法重新启动tomcat?

context.xml元素的reloadable属性设置为true

  

然后Tomcat将监视/WEB-INF/classes/WEB-INF/lib更改并在适当时重新加载。

如果您使用的是IDE,那么它也可以配置为服务器设置。 这是它在Eclipse中的样子:

替代文字

看看Jrebel 。 它可以自动检测代码更改,编译和部署战争,而无需重新启动服务器。 它节省了大量时间并提高了生产率。

如果您需要修改类而不重新启动,请考虑动态代码演变VM以及BalusC的答案以避免permgen错误,以便进行开发。

即使Tomcat在启动时通常非常快,但它在很大程度上取决于您的应用程序,它可以多快地初始化自己。 如果有一个该死的大型Spring应用程序上下文,具有各种集成和Hibernate映射,我很确定启动Tomcat需要1.5秒,但启动应用程序需要1.5分钟。 JRebel真的可以帮到这里。

您不必重新启动Tomcat,只需重新部署应用程序即可。 有不同的方法(谷歌“tomcat部署”,你会得到很多指针),但最简单的是将新创建的war文件复制到Tomcat的webapps目录。 Tomcat将自动检测文件何时更新,并重新启动应用程序。

您也可以尝试DCEVM。 我已经写了一篇关于如何使用tomcat + eclipse设置的howto: Spring-mvc + Velocity + DCEVM

是。 您可以将tomcat设置为autodeploy,它将自动获取更改。 它仍然重新部署,但速度要快得多。 只需将“autodeploy =”true“”添加到server.xml配置文件中的Host条目即可。

这就是我们工作的地方。 当我们更新其中一个应用程序时,我们只需将新WAR文件放在旧文件之上,然后Tomcat自动解压缩并部署它。

我一直在使用Spring Loaded JVM代理来避免重启Tomcat或重新加载应用程序(这可能需要一段时间才能使用Spring网络应用程序)。 我在Eclipse中配置我的Tomcat服务器以及“在资源更改时自动发布”以使更改几乎立即生效。

如果你使用Eclipse集成了Tomcat(WTP),你可以看到我在这里采取的步骤: https : //stackoverflow.com/a/37064672/1034436