IntelliJ和Tomcat ...更改的文件不会被Tomcat自动识别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

我使用Tomcat运行Intellij Ultimate并部署战争。一切都部署到tomcat的webapp目录。

当我像xhtml文件一样更改文件时,有没有办法让tomcat自动选择该更改?截至目前,我需要从intellij复制文件,并将其复制到它所在tomcat webapp目录中的目录。我知道某些文件需要重新编译,但是xhtml不是其中之一。

提问于
用户回答回答于

在IDEA中:

  1. 打开Tomcat运行/调试配置(运行>编辑配置
  2. 转到“部署”选项卡
  3. 在“在服务器启动时部署”部分,删除(如果存在)该工件 my-webapp-name:war
  4. 点击添加图标,选择“工件”,然后选择 my-webapp-name:war exploded
  5. 点击OK(在“Select Artifacts to Deploy”对话框中)
  6. 仍然在运行/调试配置窗口中,选择“服务器”选项卡
  7. 在该选项卡的中间,将“On frame Deactivation”设置更改为“更新资源”或“更新类和资源”
    • 更新资源:所有更改的资源(即所有类以外的应用程序组件)都将被更新。
    • 更新类和资源。所有更改的资源都将更新; 改变的类将被重新编译。请注意,实际的类是否会更新取决于功能Web服务器。如果我记得,Tomcat将重新加载html / xhtml和jsp文件,但不包含JSP或Servlet使用的Servlet或类。您需要修改Tomcat才能使用动态类加载器。

  8. 你还可以设置“开始更新”操作。
    • 这决定了当你点击运行窗口中的更新

    图标(或Ctrl+ F10)时发生的情况。

    • “显示对话框”决定每次点击更新图标时IDEA是否提示您

  9. 点击确定。

现在,无论何时你进行更改,IDEA都会在IDEA框架停用时重新部署更改的文件(即失去焦点)。这需要一两秒钟,你会在IDEA中较低的状态栏中看到它。明显。你仍然需要刷新你的网页浏览器,以便获取新文件(除非页面有像提取那样的自动刷新Ajax)。

与Tomcat的良好结合是将“关闭帧停用”设置为“更新资源”,将“更新”操作设置为“重新部署”或“重新启动服务器”。这样可以通过停用帧来快速更新静态页面,并且通过“更新”操作更新班级。

用户回答回答于

让我使用屏幕截图描述一系列操作:

  1. 打开Tomcat运行/调试配置(运行>编辑配置)

  1. 点击添加图标,选择“artifact”,然后选择pizza_mvc:war exploded
  1. 修改'在更新操作中'和'在帧重新激活':
  1. 每次你想刷新你的资源时,按 <Ctrl> + F10

扫码关注云+社区