【问题标题】:How to deploy to Tomcat a multi maven module from Eclipse IDE?如何从 Eclipse IDE 将多 Maven 模块部署到 Tomcat?
【发布时间】:2017-03-29 08:03:25
【问题描述】:

我有一个多模块 Maven 项目,它有一个公共模块,它是其他 2 个模块的依赖项。此模块中的一个生成战争,并通过覆盖集成到另一个中。

最终的战争是由 Maven clean install 命令生成的,没有问题。目标中的所有结构都可以。 但是,如果我在服务器视图中安装 Tomcat 8 服务器(使用“采用 Tomcat 控制安装”模式)并部署项目,那就是一场噩梦......

我在WEB-INF/classes有测试资源,公共模块(jar)没有部署在WEB-INF/lib,应该在构建过程中集成的war出现在WEB-INF/lib

有没有办法在 Maven 配置中不添加 Tomcat 插件的情况下进行干净的部署?

关于信息,它是霓虹灯版本。 部署程序集仅配置了 src/main/*(加上 Maven 依赖项)。

我们不明白为什么 Eclipse 不部署在target/xxx 目录中生成的最终应用程序。

【问题讨论】:

  • 等等,你在一个大的war 中有很多war 文件吗?也许这就是问题所在。要么使用war 模块化,要么使用jar 模块化。但不是两者的嵌合体......
  • 是的,不是我的选择。我们已经恢复了一个旧项目,其中有一个在最终战争中重叠的战争模块。这个功能存在于 Maven 中,当我们使用 Maven 构建时没有问题。我们尝试了另一个经典项目,与 Eclipse 相同的 pb(没有项目方面,没有部署程序集)。似乎不是 Eclipse 第一次无法管理该项目。这很无聊。他为什么不部署最终的目标构建?

标签: java eclipse maven tomcat


【解决方案1】:

好的,我找到了问题。

Eclipse 不关心部署程序集。 它混合了部署程序集和 Java 构建路径。

当您导入一个 maven 项目时,您的项目配置可能会因为未知原因而出错。 检查 Java Build Path 中声明的源文件夹,并特别检查每个源文件夹的输出目录。

对于src/test/resources,它设置了一个默认输出(不是target/test-classes)。所以所有的测试资源都被复制到target/classes。 而且我也不知道他为什么部署到Tomcat这个目录下。

在部署组装中,它只是设置这些目录:

   - src/main/java -> WEB-INF/classes
   - src/main/webapp -> /
   - /target/m2e-wtp/web-resources -> /
   - Maven dependencies -> WEB-INF/lib
   - link to others modules

现在一切正常。

【讨论】:

    猜你喜欢
    • 2011-07-21
    • 2015-01-30
    • 2012-08-12
    • 2012-03-19
    • 2023-03-21
    • 2012-11-14
    • 2013-10-04
    • 2011-10-03
    • 1970-01-01
    相关资源
    最近更新 更多