java - pom.xml/maven项目依赖频繁更改时,自动更新WEB-INF/lib目录的正确方法是什么?
问题描述
在与 Tomcat 集成的 IntelliJ 中维护一个 Maven 项目。有时项目结构发生变化,新的 JAR 被添加和/或它们的版本不断变化,这些变化被排除在 WEB-INF/lib 之外。为了保持正确的设置,我必须在模块结构中手动添加它们才能正确运行 Tomcat。这种情况经常发生!
这可以自动化吗?
编辑:
看了Eric Green 的回复后,我做了一些实验:
该项目是一个父/子项目,其子项目中有多个 pom。在玩弄了项目的 pom.xml 并将 main 修改为之后<packaging>jar</packaging>
,<packaging>war</packaging>
我能够让 IntelliJ 自动将它需要的所有内容包含在 WEB-INF/lib 中,我不得不做更多的修改来修复项目,但最终这是主要问题。否则我必须在 WEB-INF/lib 中手动指定所需的依赖项。
解决方案
请注意下图中顶部工具栏中的下拉菜单如何具有 Tomcat 图标。此配置自动构建一个标准的 Web 应用程序,其中一部分当然是将必要的依赖项放入生成的 *.WAR 存档的 WEB-INF/lib 文件夹中(请参阅目标目录下的 WEB-INF/lib 中的 JAR下图)。这些都是 Maven 在“打包”阶段自动放置在那里的。请参阅底部的步骤(在屏幕截图下方)以确保正确执行此操作。
下面是另一个屏幕截图,显示了 Tomcat 应用程序的运行/调试配置。Maven 实际上正在完成将依赖项组装到正确的 WAR 存档中的所有实际工作,但 IntelliJ 正在协助管理和部署工件到已配置的本地 Tomcat 服务器。
所以,为自己做这件事:
- 将项目的 pom.xml 文件中的打包设置为“war”
- 转到运行 > 编辑配置
- 单击加号“+”并单击 Tomcat 服务器 > 本地
- 按照指示填写弹出的对话框
- 运行你的 Maven 构建(“干净安装”,或者你喜欢的任何东西)
- 使用在步骤 3 和 4 中创建的新运行/调试配置启动 Tomcat
推荐阅读
- karate - 如何在条件循环中使用 karate.match
- javascript - 如何使 &:hover 可访问?我可以同时使用焦点和悬停吗?
- rust - 如何在 QEMU 模拟器下在 Windows10 64 位上运行基于 Rust 的 Redox OS 的预编译镜像?
- python - 读取 Http 流
- c++ - 包装枚举集
- vb.net - 如何在VB.NET中添加一键播放两个声音文件
- javascript - SWT 浏览器小部件:如何监听 JavaScript 事件?
- c# - log4net 上下文设置。如何向任务并行库生成的子线程传播上下文
- python-3.x - Selenium 失败并显示“此会话将忽略 TLS 证书错误”(在 python 中),如何解决?
- javascript - jwt.verify 在令牌过期时也返回 res