【问题标题】:Combine multiple maven project into 1 war将多个 Maven 项目合并为 1 场战争
【发布时间】:2016-04-09 16:56:55
【问题描述】:

我有这样的maven结构:

Parent Module
|--Backend services module (Spring) 
|--Web module (angularjs)

当我将它们作为单独的战争文件运行时,一切正常。 但我想做的是将它们作为单个 .war 文件构建和运行。

所以我把web模块打包成war,给他一个后端jar的依赖。当我在 tomcat 上运行它们时,web-module 运行良好,但 Spring 服务(后端)根本不起作用。当我单独启动后端服务模块时,我在日志“INFO:初始化 Spring root WebApplicationContext”等中得到了这个。但是当后端是另一个项目的依赖项时,这不会发生。

主 web.xml 和 spring context.xml 文件位于后端模块中。

有办法吗?

【问题讨论】:

  • Web 是如何连接到后端的? AJAX 调用?
  • 是的,使用 ajax 和 rest

标签: java spring maven tomcat


【解决方案1】:

"主web.xml和spring context.xml文件位于后端 模块。”

您提到Backend现在是一个JAR,所以它不能包含web.xml(在WEB-INF下)。 Web模块是应该包含webapp(包括web.xml)和初始化Spring等的模块。

在我看来,它们都应该是同一个 WAR。您可以使用后端(如果它已经是包含 web.xml 的 WAR),并将其添加到 Web 中的所有 HTML/JS。

【讨论】:

  • 是的,你是对的。而且我已经考虑过了,但是可以吗,弹簧初始化的东西将在单独的项目中?
  • 或许反其道而行之,这样后端模块会生成war文件,在生成过程中会复制webapp/文件夹中的angularjs内容?
  • 在我看来,它们应该是同一个 WAR。您可以使用后端,并将其添加到来自 Web 的所有 HTML/JS。不,spring init 不应该是一个单独的项目。它应该在 WAR 上。
  • 是的...似乎将这两个模块分开并不是一件好事...更容易将它们作为一个模块..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 2019-10-21
相关资源
最近更新 更多