3

这是我现在拥有的:

  • 将多个 Maven 模块导入 IntelliJ 项目
  • Maven 目标从 Maven 项目弹出窗口运行正常 - 创建了一个 war 文件。
  • 从“Build|Make Project”制作项目也可以。但是这里没有创建战争,只有 .class 文件。
  • Tomcat 6 在另一台机器上运行
  • 手动将包 maven 目标生成的战争部署到远程 tomcat 工作正常。
  • 本地 tomcat 6 实例配置为应用程序服务器。我不打算使用这个实例,但 JetBrains 文档说我必须有一个本地实例才能使用 IDE 配置应用程序服务器。
  • 没有为 IntelliJ 项目配置任何工件和构面。
  • 远程tomcat运行JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=1317,suspend=n,server=y

我希望能够在 IntelliJ 中调试我的服务器。这意味着,我必须有一个运行配置,它执行以下操作:

  1. 生成相应的战争文件。制作项目不会产生任何战争,因此应该修改它以产生战争,或者应该将战争作为运行配置的一部分创建。我不知道哪一个是正确的方法。
  2. 将其部署或重新部署到远程 tomcat 实例。
  3. 让我远程调试代码。

我该怎么做?

编辑

更正。其中一个项目自动添加了 Web facet,因为 IntelliJ 已注意到该...\src\main\webapp\WEB-INF\web.xml文件。

编辑2

这是我的远程 tomcat 运行配置对话框:

在此处输入图像描述

文档说我应该在对话框中有执行“更新”操作选项。它在哪里?

编辑3

我已经向 IntelliJ 添加了 Spring 支持和 Spring Web 服务插件,因为我们正在使用它们。现在 IntelliJ 识别了它并添加了 Spring 方面:

在此处输入图像描述

但是,远程 Tomcat 运行配置对话框中仍然没有执行“更新”操作选项。

我错过了什么?

编辑4

解决了缺少执行“更新”操作选项的谜团 -如何在 IntelliJ 的远程 Tomcat 运行配置中启用“更新”操作选项?

4

1 回答 1

3

1) 产生战争

要让 IntelliJ IDEA 生成 war 文件,您需要为模块定义一个“web”方面。

  1. 转到文件 > 项目结构 > 模块
  2. 选择您的模块
  3. 添加(通过“+”图标或 Alt+Insert)Web 构面。
  4. 配置方面。(如果您遵循标准,默认值应该没问题,但请检查它们。)

一旦定义了 Web 构面,就可以定义 WAR 工件。

  1. 转到“项目结构”对话框中的“工件”页面。
  2. 您首先需要创建一个爆炸的战争神器。
    1. 点击添加按钮
    2. 选择“Web 应用程序:已展开”,然后选择“来自模块”
    3. 在弹出窗口中,选择您的模块。验证 Web 应用程序工件是否已正确定义。同样,如果您遵循标准,默认值应该是好的。
  3. 一旦定义了分解的工件,再次单击添加工件按钮并选择“Web 应用程序:Archie”,然后选择“For {module-name}:war exploded”(或者如果您没有使用默认名称)。
  4. 验证配置。

IDEA 现在将在您构建时创建一个战争文件。

2) 部署到远程服务器

您可以将此作为运行/调试配置的一部分。请参阅下一节。

3) 远程调试

您只需创建一个运行/调试配置即可执行此操作。

  1. 从菜单中转到运行 > 编辑配置
  2. 单击添加图标(或键入 Alt + Insert)并从弹出列表中选择 Tomcat 服务器 > 远程
  3. 配置运行/调试设置。我建议单击“帮助”按钮。它将向您展示各种选项。(请务必注意哪些可用于本地、远程或两者。)查看帮助页面上的“远程暂存”信息。此外,请务必选择部署选项卡并选择要部署的工件(并指定上下文路径。)启动/连接选项卡的“调试”部分将需要在远程 Tomcat 上配置的调试连接信息服务器。
  4. 默认情况下,“Make”应该列在“Before Launch”部分。并且一旦您添加了要部署的工件,启动前还应该显示该工件将被构建。如果没有,请添加它。

定义后,您可以执行此运行/调试配置。要进行调试,请使用“调试”按钮或快捷方式 (Shift+F9) 启动。这将创建您的项目,创建战争,部署它,然后连接调试器。如果您只想运行而不进行调试,请单击运行按钮,或使用快捷键 Shift+F10。

于 2013-01-10T20:20:57.717 回答