首页 > 解决方案 > pom.xml/maven项目依赖频繁更改时,自动更新WEB-INF/lib目录的正确方法是什么?

问题描述

在与 Tomcat 集成的 IntelliJ 中维护一个 Maven 项目。有时项目结构发生变化,新的 JAR 被添加和/或它们的版本不断变化,这些变化被排除在 WEB-INF/lib 之外。为了保持正确的设置,我必须在模块结构中手动添加它们才能正确运行 Tomcat。这种情况经常发生!

这可以自动化吗?

手动添加缺少的 JAR

编辑:

看了Eric Green 的回复后,我做了一些实验:

该项目是一个父/子项目,其子项目中有多个 pom。在玩弄了项目的 pom.xml 并将 main 修改为之后<packaging>jar</packaging><packaging>war</packaging>我能够让 IntelliJ 自动将它需要的所有内容包含在 WEB-INF/lib 中,我不得不做更多的修改来修复项目,但最终这是主要问题。否则我必须在 WEB-INF/lib 中手动指定所需的依赖项。

标签: javamavenintellij-idea

解决方案


请注意下图中顶部工具栏中的下拉菜单如何具有 Tomcat 图标。此配置自动构建一个标准的 Web 应用程序,其中一部分当然是将必要的依赖项放入生成的 *.WAR 存档的 WEB-INF/lib 文件夹中(请参阅目标目录下的 WEB-INF/lib 中的 JAR下图)。这些都是 Maven 在“打包”阶段自动放置在那里的。请参阅底部的步骤(在屏幕截图下方)以确保正确执行此操作。

Tomcat Web 应用程序

下面是另一个屏幕截图,显示了 Tomcat 应用程序的运行/调试配置。Maven 实际上正在完成将依赖项组装到正确的 WAR 存档中的所有实际工作,但 IntelliJ 正在协助管理和部署工件到已配置的本地 Tomcat 服务器。

在此处输入图像描述

所以,为自己做这件事:

  1. 将项目的 pom.xml 文件中的打包设置为“war”
  2. 转到运行 > 编辑配置
  3. 单击加号“+”并单击 Tomcat 服务器 > 本地
  4. 按照指示填写弹出的对话框
  5. 运行你的 Maven 构建(“干净安装”,或者你喜欢的任何东西)
  6. 使用在步骤 3 和 4 中创建的新运行/调试配置启动 Tomcat

推荐阅读