【发布时间】:2011-11-21 19:10:06
【问题描述】:
我正在开发一个基于木兰的网站。我正在使用 webapp 原型来创建一个新的 Web 应用程序。使用命令行,我可以生成一个 WAR 并将其部署在我的容器(Tomcat)中。然后我运行它,它工作正常。
我的下一步是将我的项目结构导入 IntelliJ。 IntelliJ 认为一切正常,并且能够全部编译。我已经通过先执行 maven clean 测试了这一点,然后让 IntelliJ 完成其余的工作(重建项目)。
最后一步是让它在我的容器中运行。我之前为 Web 应用程序设置了运行配置(它们不使用战争覆盖),它们工作得很好。在这种情况下,我像以前一样设置它并指向我的分解的 webapp 工件。
一旦我运行 tomcat,它就找不到我的 webapp。我发现覆盖层没有被合并到项目的目标目录中(通常是在做 maven 安装时的情况)。然而,IntellJ 在我的项目中创建了一个覆盖目录并在其中解压缩了(覆盖/超级)WAR 文件。
当我自己安装 maven,然后在 IntelliJ 中运行 Tomcat 时,它就可以工作了。这很明显,因为各种需要的文件现在都在我的目标目录中(例如 web.xml :))。
我想要的是: - IntelliJ 知道,当它运行 Tomcat 时,它应该像“mvn install”或“mvn package”那样准备好目标目录。
它的作用: - 它介于两者之间。它确实创建了一个目标目录,并且确实从 webapp 项目中复制了资源。它不覆盖任何 WAR 依赖,因此 webapp 目标目录不完整。
谁有解决这个问题的技巧?
【问题讨论】:
标签: tomcat maven intellij-idea overlay magnolia