java - 在继承父 pom 的同时管理 Maven 多模块构建

标签 java maven pom.xml

简而言之,我想做的是一次性构建一堆库和应用程序,所有 Maven 项目。据我了解,只需在一个命令行运行 mvn package 即可完成此任务,方法是创建一个多模块项目,该项目将列出我想要构建的每个模块,将它们放入 Maven react 器中,然后进行构建。

根据 Maven 书中的示例,多模块 pom 通常位于各个模块之上的目录中。然而,通常情况下,父 pom 位于模块上方的目录中,这就提出了一个问题,多模块构建通常也应该是父级吗?我想不是;然而我想知道为什么我会遇到这种有趣的设计怪癖。

所以,我想知道设置此功能的正确方法。我看到以下约定/要求:

  • 多模块 pom 必须了解其他模块在光盘上的位置。由于它实际上是从源代码进行构建,因此它不能简单地依赖已安装的版本(因为它正在安装它们!)
  • 父目录实际上不必是物理目录,尽管这样更好。我认为这是最好打破的惯例。
  • 实际上,各个库/应用程序甚至不需要知道它们是作为多模块构建的一部分构建的。

在多模块构建中通常如何设置?有没有更简单的方法来管理同时构建多个 Maven 项目?

最佳答案

我将所有单独的模块放在根模块中。 Some software难以处理多层层次结构。

要使子模块在同一级别引用其父模块:

<parent>
    <groupId>com.domain</groupId>
    <artifactId>xyz</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../xyz/pom.xml</relativePath>
</parent>

我建议您不要在多模块中放置单个模块需要继承的任何内容(例如属性)。如果这样做,您将无法独立构建其他模块。

关于java - 在继承父 pom 的同时管理 Maven 多模块构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14104217/

相关文章:

java - 无法使用 maven pom 覆盖 SOAPUI 中的 activeEnvironment

java - Glassfish resources/jndi/jdbc登录凭证配置

java - org.mapsforge.core.graphics.Bitmap 和 android.graphics.Bitmap 之间的任何关联方法

java - 单击 TextView 类中的链接

java - 找出依赖发行者

java - 使用 xtext 和 maven 解决构建问题

java - 如何使用 PHP 到 Java 的 JSON 数据发出 POST 请求?

java - 使用 maven-surefire-plugin 进行 Maven 插件管理的奇怪行为

maven - 如何使用Docker-Maven镜像作为基础将pom.xml依赖项打包到Docker镜像中?

java - Eclipse Maven : Unknown errors in pom. xml