java - Maven - 一个包的多个模块

标签 java maven-2

我有一个 Web 应用程序,我想将其分成三部分。我注意到它有两个完全不同的功能,但核心架构(用于表示层、Spring 容器、DAO 等的库)是共享的。

一件将是“主”,具有从演示到 DAO 的完整垂直堆栈,但仅适用于所有“子项目”的通用部分。

另外两个模块本身就是“子项目”。

现在的问题是:是否可以让 Maven 将所有 3 个部分(模块?)视为一个整体,以便将它们构建在一起,最重要的是将它们打包在一起?我需要最终结果是与目录树类似的单一 war :

war
 + WEB-INF
   + classes
     + subproject1
     + subproject2
 + view-shared
   + css
     + ...
   + js
     + ...
 + subproject1
   + myPage.jsp
 + subproject2
   + anotherPage.jsp

你明白了。

最佳答案

您可以使用 Maven 程序集插件来完成。

另一种解决方案是:

  • A common项目(打包jar)
  • A subproject1 (包装 war )有 common作为依赖。
  • A subproject2 (包装 war )有 common作为依赖。
  • 最后,一个 web项目(包装 war )同时具有 subproject1subproject2作为依赖项。

Maven 何时构建 web项目,它将首先解压缩 subproject1subproject2 web/target 中的 war 目录,然后复制 web 的内容在这个 target 中转换自己目录。

这意味着如果一个文件存在于subproject1web项目,然后是 web 托管的文件将删除由 subproject1 托管的那个在最终的 WAR 文件中。

您可以找到有关 Maven WAR overlays 的更多信息.

关于java - Maven - 一个包的多个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2341819/

相关文章:

java - Pyramid Exercise java没有完全对齐

Maven 的 Spring 在线存储库

exception - quartz 的 slf4j 异常

java - Maven 全新安装失败,连接超时 :connect error

java - 将具有 IntelliJ 依赖项的 java maven 项目导出为非 maven 项目

java - PropertiesConfiguration - 在属性值中使用 "/"

java - Maven 2 不运行 Junit 4 测试

maven-2 - 您知道 mvnrepository.com 的 Maven 配置文件吗?

java - spring batch 根据批处理 id 记录到不同的日志文件?

使用 JMS 连接到 TCP/IP 的 IBM MQ channel 的 Java 客户端抛出错误