我正在使用Tomcat运行Intellij Ultimate并部署一个war。一切都部署到Tomcat的webapp目录中。
当我修改一个文件,比如一个xhtml文件时,有没有办法让tomcat自动获取这个修改?现在我需要从Intellij复制这个文件,然后把它复制到tomcat web app目录中它所在的目录。我知道有些文件需要重新编译,但是xhtmls不是其中之一。
我正在使用Tomcat运行Intellij Ultimate并部署一个war。一切都部署到Tomcat的webapp目录中。
当我修改一个文件,比如一个xhtml文件时,有没有办法让tomcat自动获取这个修改?现在我需要从Intellij复制这个文件,然后把它复制到tomcat web app目录中它所在的目录。我知道有些文件需要重新编译,但是xhtmls不是其中之一。
6条答案
按热度按时间2izufjch1#
如果使用IntelliJ IDEA部署战争,则无法执行此操作。但是,如果部署爆炸战争,则可以执行此操作。在IDEA中:
1.打开Tomcat运行/调试配置(* 运行>编辑配置 *)
1.转到“部署”选项卡
1.在“服务器启动时部署”部分中,删除工件
my-webapp-name:war
(如果存在1.单击添加图标,选择“工件”,然后选择
my-webapp-name:war exploded
1.单击“确定”(在“选择要部署的对象”对话框中)
1.仍然在“运行/调试配置”窗口中,选择“服务器”选项卡
现在,当你做了更改,IDEA会在IDEA的框架被取消激活(即失去焦点)时重新部署更改的文件。这需要一两秒钟,你会在IDEA的状态栏中看到它。显然,你仍然需要刷新你的浏览器,以便它获取新文件(当然,除非页面有像fetch这样的ajax自动刷新)。
与Tomcat的一个很好的组合是将“On frame deactivation”设置为“Update Resources”,并将“On 'update' action”设置为“Redeploy”或“Restart Server”。这样可以通过框架停用快速更新静态页面,并通过'update' action更新类。
一家名为ZeroTurnaround的公司销售JRebel,这是一个动态类加载器解决方案。他们也有一个非常好的five part series on the subject。
rslzwgfq2#
让我用屏幕截图来描述操作顺序:
1.打开您的Tomcat运行/编辑配置(运行>编辑编辑配置)
x1c 0d1x的数据
1.单击添加图标,选择“工件”,然后选择
pizza_mvc:war exploded
:1.修改“更新操作时”和“帧停用时”:
1.每次要刷新资源时,请按
<Ctrl> + F10
ycggw6v23#
如果要更新类和资源,请在 * 切换模式 * 下运行 Tomcat。在此模式下,IntelliJ更新类和资源没有问题(热插拔)。
同样的问题。IntelliJ没有更新我的项目,因为我以“运行模式”运行。当我以 * 调试模式 * 运行并按Ctrl+F10时,它更新类和资源。
wgx48brx4#
我找到了更好的办法。
在Eclipse中,我们可以自动构建、编译和重新加载静态文件。实际上,静态文件直接从src/main/webapp提供。
在IntelliJ中,不是直接从src/main/webapp提供服务,而是在target中创建了一个文件夹,在其中您将拥有src/main/webapp的副本以及其他上下文相关的.. web-inf/classes /lib。
如果你把分解后的工件的输出放在src/main/webapp而不是target,它不会覆盖你的源文件,它会直接服务,你不必点击-更新资源/更新资源和类
所以你需要在IntelliJ中做的是
1.将分解工件输出目录修改为src/main/webapp x1c 0d1x
1.创建一个宏用于保存和重新编译/编译脏类(cmd+shift+f9)
x 1c 2d 1x
1.编辑注册表和首选项以自动构建并在应用程序运行时构建(cmd+shift+a - registry).
x 1c 4d 1x
在此之后,如果您有从IntelliJ外部更改静态文件的作业,您将立即看到更改,而无需转到IntelliJ和更新资源,并且对于您拥有保存和编译的宏的类(注意:你也可以点击编译/重新编译:cmd + Shift + F9 / cmd + F9 -如果你有多个打开的编辑器,你的dirty * 编辑器将是非dirty的,并且更改(类)将被重新加载)
sg3maiej5#
只有当你部署了exploited war文件夹,启用了热重载,并在调试模式下启动tomcat时,这才是可能的。
这些是实现这一目标的步骤。
1.打开您的Tomcat运行/编辑配置(运行>编辑编辑配置)
1.转到“Deployment”选项卡3.在“Deploy at Server Startup”部分中,删除(如果存在)工件my-webapp-name:war
1.点击添加图标,选择“artifact”,然后选择my-webapp-name:war exploited
1.单击“确定”(在“选择要部署的对象”对话框中)
1.仍然在“运行/调试配置”窗口中,选择“服务器”选项卡
1.将“On frame Deactivation”和“On Update Action”设置更改为“Update classes and resources”
1.应用并保存
1.通过单击文件然后单击设置或按CTRL + ALT + S转到正常项目设置
1.后藤“构建、执行、部署”
1.编译器
1.选择自动生成项目
1.保存
1.在调试模式下启动tomcat
zqry0prt6#
如果你有多部分文件,你想立即查看/播放,直接上传到目标文件夹。*(只更改写入位置到目标文件夹/static/)
字符串
您将能够立即查看文件,而无需重新启动IDE