Answers:
如果使用IntelliJ IDEA部署战争,则无法完成此操作。但是,如果您展开了爆炸式战争,则可能是这样。在IDEA中:
my-webapp-name:war
my-webapp-name:war exploded
现在,无论何时进行更改,当IDEA的框架被停用(即失去焦点)时,IDEA都会重新部署已更改的文件。确实需要一两秒钟,您将在IDEA的下部状态栏中看到它。明显。您仍然需要刷新您的Web浏览器,以便它可以获取新文件(当然,除非该页面具有ajax的自动刷新功能,例如fetch)。
与Tomcat的一个很好的组合是将“在框架上停用”设置为“更新资源”,并将“在'更新'上设置为“重新部署”或“重新启动服务器”。这允许通过框架停用快速更新静态页面,并且通过“更新”操作更新的类。
一家名为ZeroTurnaround的公司出售JRebel,这是一种动态的类加载器解决方案。他们在这个主题上也有一个由五个部分组成的系列,非常好。
Error: Artifact 'my-webapp-name:war exploded' has invalid extension
如何解决?
如果要更新类和资源,请在Debug模式下运行Tomcat。在这种模式下,IntelliJ可以毫无问题地更新类和资源(热交换)。
有同样的问题。IntelliJ没有更新我的项目,因为我以“运行模式”运行。当我在调试模式下运行并按Ctrl+时F10,它将更新类和资源。
我找到了更好的方法。
在Eclipse中,我们可以自动构建,编译+重新加载静态文件。实际上,静态文件是直接从src / main / webapp提供的。
在IntelliJ中,不是直接从src / main / webapp提供服务,而是在target中创建了一个文件夹,在该文件夹中,您将拥有src / main / webapp的副本以及其他与上下文相关的..web-inf / classes / lib。
如果放置目标而不是目标,则将爆炸后的工件输出到 src / main / webapp,它将不会覆盖您的源文件,并且将直接提供服务,因此您无需执行操作 - 更新资源/更新资源和类
因此,您需要在IntelliJ中做的是
此后,如果您有从IntelliJ外部更改静态文件的作业,则无需转到IntelliJ和Update Resources就可以立即看到更改,并且对于具有保存的宏并进行编译的类(注意:您也可以直接单击Compile /重新编译:cmd + shift + F9 / cmd + F9-如果您有多个打开的编辑器,将会看到您的脏*编辑器将是非脏的,并且更改(类)将被重新加载)
仅当您部署爆炸的war文件夹,启用热重载并以调试模式启动tomcat时,才有可能这样做。
这些是实现此目的的步骤。