我正在开发一个基于 magnolia 的网站。我正在使用 webapp 原型(prototype)创建一个新的 web 应用程序。使用命令行,我能够生成 WAR 并将其部署到我的容器 (Tomcat) 中。然后我运行它,它工作正常。
我的下一步是将我的项目结构导入 IntelliJ。 IntelliJ 认为一切都很好,并且能够全部编译。我已经通过首先执行 maven clean 测试了这一点,然后让 IntelliJ 完成其余的工作(重建项目)。
最后一步是让它在我的容器中运行。我之前已经为 Web 应用程序设置了运行配置(它们不使用 war overlays),并且它们工作得很好。在这种情况下,我像以前一样设置它并指向我分解的 webapp Artifact 。
一旦我运行 tomcat,它就找不到我的 webapp。我发现叠加层还没有合并到项目的目标目录中(这通常是在执行 maven install 时的情况)。然而,IntellJ 在我的项目中创建了一个 overlays 目录,并在其中解压了 (overlay/super) WAR 文件。
当我自己安装 maven,然后在 IntelliJ 中运行 Tomcat 时,它就可以正常工作了。这很明显,因为各种需要的文件现在都在我的目标目录中(例如 web.xml :))。
我想要的是: - IntelliJ 知道当它运行 Tomcat 时,它应该像“mvn install”或“mvn package”一样准备好目标目录。
它的作用: - 它在两者之间做了一些事情。它确实创建了一个目标目录,并且它确实从 webapp 项目复制资源。它不覆盖任何 WAR 依赖项,因此 webapp 目标目录不完整。
谁有解决这个问题的建议?
最佳答案
我发现选中运行配置中的“run maven goal”复选框并设置 mvn package 确实可以正常工作。
关于tomcat - 使用 IntelliJ 在 webapp 运行配置中使用 Maven 覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7497686/