我不确定这是否是Maven的支持。我感谢任何帮助。
我有一个定义依赖项和排除项的父pom。我不能改变父pom:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0</version>
<exclusions>
<!-- this exclusion needs to be inherited by all children -->
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</exclusion>
</exclusions>
</dependency>
然后在子pom中,我需要从父级中的相同依赖项中排除不同的依赖项。像这样
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0</version>
<exclusions>
<!-- this exclusion is just for the child -->
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
但是,如果我这样做,孩子将排除(正确)slf4j jar,但它不会排除spring-cloud-config-server jar,除非我在子声明中重申父排除依赖性。
我意识到我可以复制它,但那很麻烦,而且我意识到将孩子的排斥推到父母那里很容易,但是我会强迫所有其他孩子被排除在外。
我希望Maven在父和子中以不同方式声明相同的依赖项时合并依赖项排除信息。
这可能吗?
答案 0 :(得分:3)
在您的父母pom中:
city_type
在你的孩子pom:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0</version>
<exclusions>
<!-- this exclusion needs to be inherited by all children -->
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>