我不确定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在父级和子级中以不同方式声明相同的依赖项时合并依赖项排除信息。
这可能吗?