我有一个maven多模块项目,A作为父项目。 B和C是模块。如果我不希望B和C从A继承,我如何分享B和C之间的某些依赖关系? (所以我不能将这些依赖关系从B和C中放入A继承它们)</ p>
如果我有这个:
<dependency>
<groupId>groupCommon</groupId>
<artifactId>IdCommon</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
我希望每个模块都使用此依赖项,但我不想将它放在每个pom.xml中。基本上,如何在模块B和C之间共享这种依赖关系,而不将此依赖项放在项目A中,并使B和C继承自A?
答案 0 :(得分:4)
如果您有多个共享依赖项,那么您可以选择一个单独的依赖项POM来定义所有共享依赖项(在<dependencies>
部分,不是 {{1}然后将此POM定义为模块中的依赖项。通过将此共享依赖关系pom定义为普通依赖关系,它的所有依赖关系都包含为模块的传递依赖关系。
你显然仍然需要在每个模块pom中定义对这个pom的依赖关系,但现在它是一个依赖项而不是多个。
例如:
依赖关系pom
<dependencyManagement>
模块B pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>shared-dependencies-group</groupId>
<artifactId>shared-dependencies</artifactId>
<version>1.0</version>
<name>Shared Dependencies</name>
<dependencies>
<dependency>
<groupId>groupCommon</groupId>
<artifactId>IdCommon1</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>groupCommon</groupId>
<artifactId>IdCommon2</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
<!-- more dependencies -->
</dependencies>
显然,在模块C的pom中也是如此。