我已经搜索过这样的问题,但没有找到任何东西,所以我开始了。
我有一个多模块 Maven 项目。多个模块都继承同一个父级,其中定义了公共依赖项。其中,有一个我自己的模块,一个“通用”模块,其中实现了一些通用功能。
我的问题是:对于常见的依赖项,更好的做法是什么:像我目前所做的那样,在父项中明确定义它们?或者在其他模块引用的“通用”模块中定义它们,然后依赖传递性(如通用依赖项的单入口点)?
我已经搜索过这样的问题,但没有找到任何东西,所以我开始了。
我有一个多模块 Maven 项目。多个模块都继承同一个父级,其中定义了公共依赖项。其中,有一个我自己的模块,一个“通用”模块,其中实现了一些通用功能。
我的问题是:对于常见的依赖项,更好的做法是什么:像我目前所做的那样,在父项中明确定义它们?或者在其他模块引用的“通用”模块中定义它们,然后依赖传递性(如通用依赖项的单入口点)?
最好在父 pom 中使用 dependencyManagement 标记来定义您的依赖项及其版本,然后在需要时在子模块中引用这些依赖项。当您需要项目中的其他子模块(即来自另一个子模块的公共子模块)时,将可传递地找到依赖关系。例如:
在你的父母 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>
然后你就可以从其他子模块中引用你的公共子模块了。