跨Maven项目共享多个依赖项的最佳实践方法是什么。
我可以想到以下两种可能的方法 -
创建父POM文件并在使用该组依赖项的每个项目中使用相同的POM文件。
使用包含依赖项的POM文件创建新的maven项目。然后在需要公共依赖项的所有项目中引用此项目。
还有其他方法,我应该使用哪种方法?
答案 0 :(得分:4)
IMO它取决于您的确切用例。
选项1当然是一个很好的方法,但是如果你已经拥有一个父项目,那么管理会变得更加困难/复杂,特别是如果你有几个共享的依赖集(你可能会发现自己迷失在一个复杂的层次结构中)多个父母)。 选项1的另一个缺点是(AFAIK)不可能排除继承的依赖项,所以如果你的项目扩展了父pom,你别无选择,只能继承所有依赖项。
在这种情况下,选项2更易于管理,更清晰,更灵活。创建一个POM类型的maven项目,并在需要时为其添加依赖项。使用此解决方案,可以从POM项目中排除某些依赖项,这再次使此解决方案更加灵活。
答案 1 :(得分:1)
选项1运作良好 - 我建议。
答案 2 :(得分:1)
请查看用户指南:http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management(即在父POM中使用<dependencyManagement>
)。
答案 3 :(得分:1)
我认为选项2更好,因为它是containment
vs inheritance
问题。
如果您必须在项目中共享2个依赖关系特征,该怎么办?使用选项1,您将陷入单继承级别,而选项2则为您提供更大的灵活性。
答案 4 :(得分:1)
选项2-您需要在dependencyManagement部分中通过导入指定依赖项:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.test</groupId>
<artifactId>bom</artifactId>
<version>1.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>