Maven多模块: aggregate common dependencies in a single one?

标签 maven dependencies multi-module

我已经搜索过这样的问题,但没有找到任何东西,所以我开始了。

我有一个多模块 Maven 项目。多个模块都继承同一个父级,其中定义了公共(public)依赖项。其中,有一个我自己的模块,一个“通用”模块,其中实现了一些通用功能。

我的问题是:对于常见的依赖项,更好的做法是什么:像我目前所做的那样,在父项中明确定义它们?或者在其他模块引用的“通用”模块中定义它们,然后依赖传递性(如通用依赖项的单入口点)?

最佳答案

最好在父 pom 中使用 dependencyManagement 标记来定义您的依赖项及其版本,然后在需要时在子模块中引用这些依赖项。当您在项目中需要其他子模块(即来自另一个子模块的公共(public)子模块)时,将可传递地找到依赖关系。例如:

在你的 parent pom 中:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.7</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

在你常见的 pom 中(注意没有版本或范围):
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
  </dependency>
</dependencies>

然后你就可以从其他子模块中引用你的公共(public)子模块了。

关于Maven多模块: aggregate common dependencies in a single one?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6086774/

相关文章:

maven - 是否有任何与 Java 13 兼容的 SonarQube 版本

java - 如何使用 cxf-xjc-plugin 从多个 xsd 生成 pojos?

CMake:如何从命令行指定在何处查找本地安装的库

java - 在maven java项目中使用SQLcl

maven - 三级 pom(公司 - 项目 - 模块) - 模块项目的问题

java - 设计多模块项目

java - 终端中的 Selenium Webdriver : How to run testNG. xml 文件(在 MAC 中)?

java - 在 IntelliJ 上调试 tomEE

java - Maven 构建从错误的链接下载

gradle - 在多项目构建中依赖多个gradle任务