IDEA 中 如何配置TOMCAT 在调试项目时候,能够在这个tomcat中额外再执行一war项目

230 阅读4分钟

在 IntelliJ IDEA 中配置 Tomcat 调试项目时,要额外再部署一个 WAR 包(我们称之为“额外项目”)到同一个 Tomcat 实例中,可以通过修改 Tomcat 的 Run/Debug Configuration 来实现。

主要思路是在同一个 Tomcat 配置的 Deployment (部署) 选项卡中,添加两个部署项:一个是你要调试的主项目(通常是 exploded WAR 或者 WAR artifact),另一个是你要额外运行的 WAR 文件(作为外部源)。

以下是详细步骤:

  1. 打开 Run/Debug Configurations:

    • 点击 IDEA 顶部菜单栏的 Run -> Edit Configurations...
    • 或者,在右上角的下拉框中选择 Edit Configurations...
  2. 选择或创建 Tomcat 配置:

    • 在弹出的 Run/Debug Configurations 对话框左侧,找到 Tomcat Server -> Local
    • 如果你已经为你的主项目创建了一个 Tomcat 配置,请选中它。
    • 如果没有,点击左上角的 + 号,选择 Tomcat Server -> Local,创建一个新的配置。
  3. 配置服务器 (Server Tab):

    • 确保 Server 选项卡中已经正确配置了你的 Tomcat 安装目录 (Tomcat Home) 和其他基本设置(如端口号,确保未被占用)。
  4. 配置部署 (Deployment Tab): 这是关键步骤。

    • 切换到 Deployment 选项卡。
    • 添加主调试项目:
      • 通常,这里应该已经有一个部署项,指向你当前要调试的项目。它可能是 YourProject:war explodedYourProject:war 类型。
      • 如果还没有,点击右侧的 + 号,选择 Artifact...,然后选择你要调试的主项目的 artifact(推荐使用 exploded 类型,便于热部署)。
      • 设置 Application Context: 为你的主项目设置一个访问路径,例如 /myMainApp。确保这个路径是唯一的。
    • 添加额外的 WAR 项目:
      • 再次点击右侧的 + 号。
      • 这次选择 External Source...
      • 在弹出的文件选择器中,浏览并选中你想要额外部署的那个 WAR 文件的路径
      • IDEA 会自动为这个 WAR 文件添加一个部署项。
      • 设置 Application Context: IDEA 可能会根据 WAR 文件名自动生成一个 Application Context(例如,如果 WAR 文件名为 extraApp.war,它可能会生成 /extraApp)。请务必确保这个 Application Context 与你的主调试项目的 Application Context 不同! 如果需要,可以手动修改它,例如改为 /myExtraApp
  5. 检查并确认配置:

    • 现在,在 Deployment 选项卡下,你应该能看到至少两个部署项:
      • 一个是你的主调试项目(类型可能是 Artifact)。
      • 另一个是你刚刚添加的额外 WAR 文件(类型是 External Source)。
      • 确保它们的 Application Context 是不同的。
  6. 应用并关闭:

    • 点击 ApplyOK 保存配置。
  7. 启动调试:

    • 在 IDEA 右上角的下拉框中选中你刚刚配置好的那个 Tomcat 配置。
    • 点击旁边的 Debug 按钮(绿色的小虫子图标)启动 Tomcat。

结果:

  • Tomcat 将会启动。
  • IntelliJ IDEA 会将你的主项目部署到 Tomcat(例如,可以通过 http://localhost:8080/myMainApp 访问),并且你可以对其进行调试(设置断点等)。
  • 同时,IDEA 也会将你指定的那个额外的 WAR 文件部署到同一个 Tomcat 实例中(例如,可以通过 http://localhost:8080/myExtraApp 访问)。这个额外的应用会正常运行,但默认情况下你无法直接在 IDEA 中调试它的代码(除非它也是你工作区中的一个项目,并且你也将其 artifact 添加到了部署中)。

注意事项:

  • Application Context 冲突: 必须保证两个(或多个)部署的应用的 Application Context 是唯一的,否则会导致部署失败或只有一个应用能正常访问。
  • 资源消耗: 在同一个 Tomcat 中部署多个应用会消耗更多的内存和 CPU 资源。如果遇到性能问题或内存溢出,可能需要调整 Tomcat 的 JVM 启动参数(在 Run/Debug Configuration 的 Server 选项卡下的 VM options 中,例如增加 -Xms-Xmx 的值)。
  • WAR 文件位置: 确保 IDEA 能够访问到你指定的那个外部 WAR 文件的路径。
  • 调试范围: 使用这种方法,你主要调试的是标记为 Artifact 的主项目。对于通过 External Source 添加的 WAR 包,默认情况下断点不会生效,因为它被当作一个独立的、预编译好的包来部署。如果你也需要调试这个额外 WAR 包的代码,并且它的源码在你的 IDEA 工作区中,你应该将它也添加为 Artifact 部署,而不是 External Source

码觉客微信公众号